Risposte:
Sui sistemi Upstart più recenti, un processo di avvio della sessione viene avviato quando si accede utilizzando la GUI. Poiché Ubuntu utilizza Upstart, esiste un init
processo per la sessione. Provalo usando pstree -ps $$
in un terminale:
$ pstree -ps $$
init(1)───lightdm(1741)───lightdm(9511)───init(9526)───/usr/bin/termin(9570)─┬─gnome-pty-helpe(9734)
└──zsh(7944)
Quindi, quando corri killall init
, non stai uccidendo init
PID 1 (perché non hai il privilegio), ma la tua sessione init
, che sarebbe PID 9526 in questo esempio.
Poiché questo init
è il processo di governo per la tua sessione della GUI, ucciderlo uccide la tua sessione e quindi sei disconnesso.
pkill
invece killall
perché killall
funziona completamente diverso su altri sistemi come Solaris ...
killall
uccide tutto. Da qui il nome.
killall init
come root
non sembra una buona idea - specialmente su un sistema utile - penso che init
causi il panico del kernel se muore perché non è destinato a raggiungere mai un return
alla fine del suo main
ciclo di codice.