Posting pertanyaan ini karena saya terkejut tidak menemukannya langsung dijawab; permintaan maaf jika ini adalah duplikat - saya memang melihat!
Saya pernah mendengar itu kill -9
atau kill -SIGKILL
buruk, tetapi saya tidak mengerti mengapa. Jika saya tidak seharusnya kill -9
apa yang harus saya lakukan untuk membunuh suatu proses?
kill -9
itu ", OP mengatakan " bagus, itu berhasil! Saya akan mengingatnya mulai sekarang! ", Dan B masuk untuk memperingatkan " tunggukill -9
itu berbahaya! " Hanya setelah fakta.Jawaban:
SIGKILL
menarik karpet keluar dari proses Anda berjalan, segera menghentikannya. Untuk program yang sangat sederhana ini tidak masalah; namun dalam praktiknya hanya ada sedikit program "sederhana".Di balik selimut, bahkan program yang tampak sepele melakukan segala macam pekerjaan transaksional yang perlu mereka bersihkan sebelum diakhiri (pikirkan
finally
blok di Jawa dan bahasa pemrograman lainnya), seperti menutup pegangan sumber daya, menghapus file sementara, dan menyiram data dari memori ke disk. Anda tidak dapat mengantisipasi kapan suatu program melakukan hal seperti ini.Jika Anda beruntung, Anda tidak akan melihat ada yang salah jika mengirim
SIGKILL
, tetapi Anda tidak bisa beruntung selamanya, dan Anda mungkin tidak tahu ada yang salah sampai sudah terlambat untuk memulihkan apa yang hilang.Anda seharusnya hampir tidak pernah perlu mengirim
SIGKILL
, dan Anda harus yakin telah kehabisan alternatif Anda sebelum melakukannya. Dalam banyak kasus, me-reboot (yang pada akhirnya akan mengirimSIGKILL
ke program yang nakal) lebih aman daripada mengirimSIGKILL
sendiri secara manual . Saya mungkin dapat mengandalkan di satu sisi berapa kali saya perlu mengirimSIGKILL
(dan kemungkinan semua buatan saya sendiri).Secara umum Anda dapat menggunakan Ctrl+ C(yang mengirimkan proses foreground a
SIGINT
) atauSIGTERM
(seperti dalam "terminate") untuk menginstruksikan proses untuk menghentikan apa yang dilakukannya dan keluar.Beberapa bacaan lebih lanjut:
kill
sinyal-9
artinyakill
sinyal yang berbedasumber