Разница между "убит" и "уничтожен"

Я просто тестировал флаги переключателя убийства со спящим процессом.

сначала я попытался убить его с -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

в чем разница ?

2 ответов


сигнал 'terminate', SIGTERM, является сигналом, который может быть перехвачен в программе. Часто процессы, которые предназначены для работы в фоновом режиме, поймают этот сигнал и начнут процесс выключения, что приведет к чистому выходу. 'Убить' сигнал, сигнал SIGKILL, не может быть перехвачено. Когда это отправляется процессу, это приведет к резкому прекращению этой программы.

при выключении или перезагрузке компьютера, например, обычно SIGTERM сначала отправляется запущенным процессам позволяя им выйти чистым способом, если они его поддерживают. Затем через несколько секунд SIGKILL отправляется процессам, которые все еще работают, так что используемые ресурсы принудительно освобождаются (например, используемые файлы), и последовательность завершения работы может продолжаться (например, размонтирование файловых систем)


Terminate: он будет хранить все ваши данные перед выключением (запись данных из ОЗУ на диск, журналы и т. д.)

Kill: это больше похоже на нажатие кнопки питания ПК и сброса. Он не будет сохранять журналы или другие данные.