Saya mengerti ini di luar topik, saya tidak dapat menemukan di mana pun secara online dan saya berpikir mungkin guru pemrograman di komunitas mungkin mengetahui hal ini.
Saya biasanya menggunakan
kill -9 pid
untuk menghentikan pekerjaan itu. Saya selalu bertanya-tanya asal mula 9. Saya mencarinya secara online, dan tertulis
"9 Berarti MEMBUNUH sinyal yang tidak dapat ditangkap atau diabaikan. Dengan kata lain itu akan memberi sinyal proses (beberapa aplikasi yang sedang berjalan) untuk segera keluar" (sumber: http://wiki.answers.com/Q/What_does_kill_-9_do_in_unix_in_its_entirety )
Tapi, kenapa 9? dan bagaimana dengan angka lainnya? apakah ada signifikansi sejarah atau karena arsitektur Unix?
Jawaban:
Lihat artikel wikipedia tentang sinyal Unix untuk mengetahui daftar sinyal lainnya. SIGKILL kebetulan mendapatkan nomor 9.
Anda juga bisa menggunakan mnemonik, seperti nomor:
sumber
Ada 8 sinyal lain yang mereka dapatkan pertama kali.
sumber
Saya pikir jawaban yang lebih baik di sini hanyalah ini:
Adapun "signifikansi" dari 9 ... Saya akan mengatakan mungkin tidak ada. Menurut The Linux Programming Interface (p 388) :
sumber
Pertama, Anda perlu tahu apa itu Sinyal dalam sistem mirip Unix (Ini hanya akan memakan waktu beberapa menit).
Ada beberapa jenis Sinyal yang dapat kita gunakan - untuk mendapatkan daftar lengkap dari semua Sinyal yang tersedia / mungkin, gunakan perintah " $ kill -l ":
Pada keluaran di atas terlihat jelas, bahwa setiap Sinyal memiliki ' nomor sinyal ' (misalnya 1, 2, 3) dan ' nama sinyal ' (misalnya SIGUP, SIGINT, SIGQUIT) yang terkait dengannya. Untuk pencarian mendetail tentang apa yang masing-masing dan setiap Signal lakukan, kunjungi tautan ini .
Akhirnya, datang ke pertanyaan "Mengapa nomor 9 dalam perintah kill -9 ":
Ada beberapa metode untuk mengirimkan sinyal ke program atau skrip. Salah satu metode yang umum digunakan untuk mengirim sinyal adalah dengan menggunakan perintah kill - sintaks dasarnya adalah:
Dimana sinyal bisa berupa nomor atau nama sinyal, diikuti dengan proses Id (pid) dimana sinyal akan dikirim.
Misalnya - -SIGKILL (atau -9 ), sinyal membunuh proses dengan segera.
dan
kedua perintah tersebut adalah satu hal yang sama yaitu di atas kita telah menggunakan 'nama sinyal', dan kemudian kita menggunakan 'nomor sinyal'.
Putusan : Seseorang memiliki pilihan terbuka apakah menggunakan 'nama sinyal' atau 'nomor sinyal' dengan perintah kill .
sumber
Ini mengacu pada "Revoulution 9" oleh The Beatles. Kumpulan klip suara yang dirangkai dan suara-suara yang ditemukan, rekaman ini menampilkan John Lennon mengulangi berulang kali "Nomor 9, Nomor 9 ..." Lebih lanjut, lagu ini menarik perhatian lebih lanjut pada tahun 1969 ketika ditemukan bahwa ketika diputar mundur, John tampak untuk mengatakan "Hidupkan aku, orang mati ..."
Oleh karena itu, sinyal kesembilan ditakdirkan menjadi sinyal mematikan yang paling mematikan.
sumber
Ada daftar sinyal Unix yang sangat panjang, yang dapat Anda lihat di Wikipedia . Agak membingungkan, Anda sebenarnya dapat menggunakan
kill
untuk mengirim sinyal apa pun ke suatu proses. Misalnya,kill -SIGSTOP 12345
memaksa proses 12345 untuk menghentikan sementara eksekusinya, sementarakill -SIGCONT 12345
memerintahkannya untuk melanjutkan. Versi yang sedikit lebih samar darikill -9
adalahkill -SIGKILL
.sumber
kill
. Mungkin karena perilaku default untuk sebagian besar rangkaian sinyal asli (nomor 1 hingga 15) adalah menghentikan proses.Saya tidak berpikir ada arti penting untuk nomor 9. Selain itu, meskipun diyakini umum,
kill
digunakan tidak hanya untuk mematikan proses tetapi juga mengirim sinyal ke suatu proses. Jika Anda benar-benar penasaran, Anda dapat membaca di sini dan di sini .sumber
mengapa membunuh -9: angka 9 dalam daftar sinyal telah dipilih sebagai SIGKILL sehubungan dengan "membunuh 9 nyawa kucing".
sumber
SIGKILL
gunakan untuk menghentikan proses.SIGKILL
tidak bisa diabaikan atau ditangani. Di Linux, Cara memberiSIGKILL
.sumber
Ketik perintah kill -l di shell Anda
Anda akan menemukan itu di nomor 9 [ 9) SIGKILL ], jadi seseorang dapat menggunakan kill -9 atau kill -SIGKILL
SIGKILL pasti mematikan sinyal, Ini tidak dapat dipindahkan posisinya, diabaikan atau ditangani. Itu selalu bekerja dengan perilaku defaultnya, yaitu mematikan proses.
sumber
Itu
-9
adalah signal_number, dan menentukan bahwa pesan kill yang dikirim harus dari jenis KILL (non-catchable, non-ignorable).Yang sama seperti di bawah ini.
Tanpa menentukan signal_number default -15, yaitu TERM (software termination signal). Mengetik
kill <pid>
sama dengankill -15 <pid>
.sumber
Keduanya sama dengan kill -sigkill processID, kill -9 processID. Ini pada dasarnya untuk penghentian paksa proses.
sumber
ada beberapa proses yang tidak bisa dimatikan seperti ini "kill% 1". jika kita harus menghentikan proses tersebut maka perintah khusus digunakan untuk mematikan proses tersebut yaitu kill -9. misal buka vim dan stop jika dengan menggunakan ctrl + z kemudian lihat pekerjaan dan setelah menerapkan proses kill maka proses ini tidak akan dihentikan jadi disini kita menggunakan perintah kill -9 untuk mengakhiri.
sumber