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 initproceso 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 initPID 1 (porque no tiene el privilegio), sino su sesión init, que sería PID 9526 en este ejemplo.
Dado que este inites el proceso de gobierno para su sesión de GUI, matarlo mata su sesión y, por lo tanto, se desconecta.
pkilllugar dekillallporquekillallfunciona completamente diferente en otros sistemas como Solaris ...killallmata a todos. De ahí el nombre.killall initcomorootno parece una buena idea, especialmente en un sistema útil , creo queinitcausa un pánico en el núcleo si muere porque no está destinado a llegar a unreturnfinal de sumainciclo de código.