Auf mehreren Computern mit Ubuntu 14.XX habe ich als Benutzer den Befehl "killall init" ausgeführt und wurde sofort abgemeldet. Ich konnte mich problemlos wieder einloggen. Warum ist das? Was ist hinter den Kulissen los?
12
Auf neueren Upstart-Systemen wird ein Sitzungsinitiierungsprozess gestartet, wenn Sie sich über die GUI anmelden. Da Ubuntu Upstart verwendet, gibt es einen init
Prozess für Ihre Sitzung. Testen Sie es mit pstree -ps $$
einem Terminal:
$ pstree -ps $$
init(1)───lightdm(1741)───lightdm(9511)───init(9526)───/usr/bin/termin(9570)─┬─gnome-pty-helpe(9734)
└──zsh(7944)
Wenn Sie also ausführen killall init
, töten Sie nicht init
PID 1 (weil Sie nicht über die Berechtigung verfügen), sondern Ihre Sitzung init
, in diesem Beispiel PID 9526.
Da dies init
der maßgebliche Prozess für Ihre GUI-Sitzung ist, wird Ihre Sitzung durch das Beenden beendet und Sie werden daher abgemeldet.
pkill
statt ,killall
weilkillall
Werke völlig anders auf anderen Systemen wie Solaris ...killall
tötet alle. Daher der Name.killall init
asroot
scheint keine gute Idee zu sein - besonders auf einem nützlichen System - ich denke, esinit
verursacht eine Kernel-Panik, wenn es abstirbt, weil es nicht beabsichtigt ist, jemals einereturn
am Ende seinermain
Codeschleife zu erreichen.