Mengapa perintah 'bunuh' ini mengeluarkan saya dari komputer?

40

Perintah berikut mengeluarkan saya ( jangan jalankan perintah ini):

kill -9 -1

Saya tidak mengerti mengapa.

Adakah yang bisa menjelaskan hal ini kepada saya?

hytromo
sumber

Jawaban:

71

Sintaksnya adalah kill SIGNAL PID.

The -9menspesifikasikan opsi bahwa SIGKILLsinyal harus dikirim (segera mengakhiri proses target (es), dan menentukan PID -1adalah singkatan untuk "semua proses kecuali dirinya sendiri dan init".

Karena Anda tidak menggunakan sudo(dan mungkin tidak memiliki izin root), ini segera membunuh semua proses Anda memiliki izin untuk membunuh - seluruh sesi Anda, karenanya logout Anda.

kronis
sumber
9
Dan perhatikan, jika Anda menjalankan perintah ini dengan sudo seperti sudo kill -9 -1maka komputer akan restart
Anwar
Apakah ini akan benar-benar dimulai kembali? Sepertinya itu hanya akan crash.
user606723
@ user606723 proses init tidak akan keluar, dan dapat memutuskan apa yang harus dilakukan (jika ada) tentang semua proses lain setelah keluar.
Random832
3
@ Anwar itu tidak harus restart, itu akan menjatuhkan Anda untuk menjalankan hanya init, yang mungkin atau mungkin tidak kemudian menelurkan shell atau membawa kembali layanan lainnya.
mikebabcock
27

mencoba

man kill

untuk mendapatkan penjelasan tentang perintah kill ..

ia mengatakan:

PID -1 adalah spesial; ini menunjukkan semua proses kecuali proses kill itu sendiri dan init.

dan

CONTOH

kill -9 -1

 Kill all processes you can kill.

Saya harap Anda mengerti mengapa komputer Anda akan mengeluarkan Anda, ketika Anda mengakhiri semua proses. Anda berhenti semuanya.

Semoga ini membantu.

mondjunge
sumber
18
+1 untuk menunjuk ke man. "Ajari seekor ikan bagaimana caranya mandan kamu memberinya makan seumur hidup." (Pun dimaksudkan :-))
m000
7

Anda memberi -1sebagai id proses: dari halaman killmanual:

 A  PID of -1 is special; it indicates all processes except the
 kill process itself and init.
Tom Regner
sumber