Відповіді:
У нових системах Upstart процес запуску сеансу запускається під час входу за допомогою GUI. Оскільки Ubuntu використовує Upstart, є init
процес для вашого сеансу. Перевірте це за допомогою pstree -ps $$
терміналу:
$ pstree -ps $$
init(1)───lightdm(1741)───lightdm(9511)───init(9526)───/usr/bin/termin(9570)─┬─gnome-pty-helpe(9734)
└──zsh(7944)
Отже, коли ви запускаєте killall init
, ви не вбиваєте init
PID 1 (тому що у вас немає привілею), а ваш сеанс init
, який був би PID 9526 у цьому прикладі.
Оскільки це init
процес керування вашим сеансом графічного інтерфейсу, його вбивство вбиває вашу сесію, і тому ви вийшли з системи.
pkill
замість того, killall
що killall
працює зовсім інше в інших системах, таких як Solaris ...
killall
вбиває всіх. Звідси і назва.
killall init
як root
не здається гарною ідеєю - особливо в корисній системі - я думаю, що init
викликає паніку ядра, якщо він гине, тому що він не призначений ніколи досягти return
кінця main
циклу коду.