En varias computadoras que ejecutan Ubuntu 14.XX, ejecuté el comando "killall init" como usuario y me desconecté inmediatamente. Podría volver a iniciar sesión sin problemas. ¿Por qué es esto? ¿Qué está pasando detrás de escena?
12
En los sistemas Upstart más nuevos, se inicia un proceso de inicio de sesión cuando inicia sesión con la GUI. Como Ubuntu usa Upstart, hay un init
proceso para su sesión. Pruébelo usando pstree -ps $$
en una terminal:
$ pstree -ps $$
init(1)───lightdm(1741)───lightdm(9511)───init(9526)───/usr/bin/termin(9570)─┬─gnome-pty-helpe(9734)
└──zsh(7944)
Entonces, cuando ejecuta killall init
, no está eliminando el init
PID 1 (porque no tiene el privilegio), sino su sesión init
, que sería PID 9526 en este ejemplo.
Dado que este init
es el proceso de gobierno para su sesión de GUI, matarlo mata su sesión y, por lo tanto, se desconecta.
pkill
lugar dekillall
porquekillall
funciona completamente diferente en otros sistemas como Solaris ...killall
mata a todos. De ahí el nombre.killall init
comoroot
no parece una buena idea, especialmente en un sistema útil , creo queinit
causa un pánico en el núcleo si muere porque no está destinado a llegar a unreturn
final de sumain
ciclo de código.