16

我只是在使用睡眠过程测试终止开关标志。

首先我尝试用-15杀死它

 xtechkid@ubuntu:~/Desktop/expermiments$ ps cax | grep 10005
 10005 pts/2    S+     0:00 sh
 xtechkid@ubuntu:~/Desktop/expermiments$ kill -15 10005

这个过程被终止了

 xtechkid@ubuntu:~/Desktop/expermiments$ sh testscript.sh
 This is a script which sleeps for few seconds ..
 Terminated

然后我用 - 9 杀了它

 xtechkid@ubuntu:~/Desktop/expermiments$ ps -ef | grep testscript.sh
 xtechkid 10059  9852  0 13:48 pts/2    00:00:00 sh testscript.sh
 xtechkid 10064 10007  0 13:48 pts/4    00:00:00 grep --color=auto testscript.sh
 xtechkid@ubuntu:~/Desktop/expermiments$ kill -9 10059

这个过程被杀死了

 xtechkid@ubuntu:~/Desktop/expermiments$ sh testscript.sh
 This is a script which sleeps for few seconds ..
 Killed

有什么区别 ?

4

2 回答 2

34

“终止”信号 SIGTERM 是可以在程序中截获的信号。通常打算在后台运行的进程会捕获此信号并启动关闭进程,从而导致干净的退出。'kill' 信号 SIGKILL 不能被截获。当这被发送到一个进程时,它将导致该程序的突然终止。

例如,当您关闭或重新启动计算机时,通常会首先向正在运行的进程发送 SIGTERM,如果它们支持,则允许它们以干净的方式退出。然后,几秒钟后,一个 SIGKILL 被发送到仍在运行的进程,以便强制释放正在使用的资源(例如正在使用的文件)并且可以继续关闭序列(例如卸载文件系统)

于 2013-10-06T07:19:16.037 回答
5

终止:它将在关闭之前存储您的所有数据(将数据从 RAM 写入磁盘、日志等)

杀戮:更像是按下PC电源和重置按钮。它不会保存任何日志或其他数据。

于 2013-10-06T06:44:56.713 回答