Pada beberapa komputer yang menjalankan Ubuntu 14.XX, saya menjalankan perintah "killall init" sebagai pengguna, dan segera keluar. Saya bisa masuk kembali tanpa masalah. Kenapa ini? Apa yang terjadi di balik layar?
12
Pada sistem pemula yang baru, proses init sesi dimulai ketika Anda masuk menggunakan GUI. Karena Ubuntu menggunakan pemula, ada init
proses untuk sesi Anda. Cobalah menggunakan pstree -ps $$
terminal:
$ pstree -ps $$
init(1)───lightdm(1741)───lightdm(9511)───init(9526)───/usr/bin/termin(9570)─┬─gnome-pty-helpe(9734)
└──zsh(7944)
Jadi ketika Anda menjalankan killall init
, Anda tidak membunuh init
PID 1 (karena Anda tidak memiliki hak istimewa), tetapi sesi Anda init
, yang akan menjadi PID 9526 dalam contoh ini.
Karena ini init
adalah proses yang mengatur untuk sesi GUI Anda, mematikannya membunuh sesi Anda dan karena itu Anda keluar.
pkill
daripadakillall
karenakillall
bekerja sama sekali berbeda pada sistem lain seperti Solaris ...killall
membunuh semua. Maka nama.killall init
sebagairoot
tidak tampak seperti ide yang baik - terutama pada berguna sistem - saya pikirinit
menyebabkan kernel panik jika mati karena tidak dimaksudkan untuk pernah mencapaireturn
pada akhir itumain
kode lingkaran.