GNU/Linux >> Belajar Linux >  >> Linux

Perbedaan antara SIGKILL SIGTERM mempertimbangkan pohon proses

Anda tidak dapat mengontrolnya dengan sinyal; hanya proses induknya yang dapat mengontrolnya, dengan memanggil waitpid() atau mengatur penangan sinyal untuk SIGCHLD . Lihat SIGCHLD dan SA_NOCLDWAIT di sigaction(2) halaman manual untuk detail.

Juga, apa yang terjadi pada utas anak bergantung pada versi kernel Linux. Dengan utas POSIX 2.6, mematikan utas utama akan menyebabkan utas lainnya keluar dengan bersih. Dengan 2.4 LinuxThreads, setiap utas sebenarnya merupakan proses terpisah dan SIGKILL tidak memberikan utas root kesempatan untuk memberi tahu yang lain untuk dimatikan, sedangkan SIGTERM tidak.


Jika Anda mematikan proses root (proses induk), ini akan membuat anak yatim piatu, bukan anak zombie. anak yatim dibuat ketika Anda membunuh induk proses, dan kernel menjadikan init sebagai induk dari anak yatim. init seharusnya menunggu sampai anak yatim mati, lalu gunakan tunggu untuk membersihkannya.

Anak-anak zombie dibuat saat proses (bukan induknya) berakhir dan induknya tidak menggunakan status keluarnya dari tabel proses.

Kedengarannya seperti Anda khawatir meninggalkan anak yatim piatu karena menurut definisi, ketika Anda membunuh proses induk zombie, anak zombie itu sendiri akan mati.

Untuk membunuh anak yatim Anda, gunakan kill -9 , yang setara dengan SIGKILL.

Berikut adalah tutorial yang lebih mendalam untuk mematikan barang di linux:http://riccomini.name/posts/linux/2012-09-25-kill-subprocesses-linux-bash/


Linux
  1. Proses Induk Baru Ketika Proses Induk Meninggal?

  2. Perbedaan Antara 2>&-, 2>/dev/null, |&, &>/dev/null Dan>/dev/null 2>&1?

  3. Apa Perbedaan Antara Sudo Su – Dan Sudo Su —?

  1. Perbedaan Antara Eot dan Eof?

  2. Perbedaan Antara [0-9], [[:digit:]] Dan D?

  3. Perbedaan antara $HOME dan '~' (tilde)?

  1. Perbedaan Antara Shell Login dan Shell Non-login?

  2. Apa perbedaan antara Non-preemptive, Preemptive dan Selective Preemptive Kernel?

  3. Apa perbedaan antara kill , pkill dan killall?