我只是在睡眠过程中测试kill switch标志。
首先我尝试用-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
有什么区别?
答案 0 :(得分:23)
'terminate'信号SIGTERM是一个可以在程序中截获的信号。通常,在后台运行的进程将捕获此信号并启动关闭过程,从而实现干净的退出。 “杀戮”信号SIGKILL无法截获。当这被发送到一个进程时,它将导致该程序的突然终止。
例如,当您关闭或重新启动计算机时,通常会先将SIGTERM发送到正在运行的进程,如果它们支持,则允许它们以干净的方式退出。然后,几秒钟后,SIGKILL被发送到仍在运行的进程,以便强制释放正在使用的资源(例如正在使用的文件),并且关闭序列可以继续(例如,卸载文件系统)
答案 1 :(得分:4)
终止:它将在关闭之前存储所有数据(将数据从RAM写入磁盘,日志等)
杀死:更像是按下电源和重置按钮。它不会保存任何日志或其他数据。