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 initprocesso 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 initPID 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.
pkillinvece killallperché killallfunziona completamente diverso su altri sistemi come Solaris ...
killalluccide tutto. Da qui il nome.
killall initcome rootnon sembra una buona idea - specialmente su un sistema utile - penso che initcausi il panico del kernel se muore perché non è destinato a raggiungere mai un returnalla fine del suo mainciclo di codice.