Warum meldet mich dieser Befehl 'kill' vom Computer ab?

40

Der folgende Befehl meldet mich ab ( diesen Befehl nicht ausführen):

kill -9 -1

Ich verstehe nicht warum.

Kann mir das jemand erklären?

hytromo
quelle

Antworten:

71

Die Syntax lautet kill SIGNAL PID.

Die -9Option gibt an, dass das SIGKILLSignal gesendet werden soll (sofortiges Beenden der Zielprozesse), und die Angabe der PID -1ist eine Abkürzung für "alle Prozesse außer sich selbst und init".

Da Sie nicht verwenden sudo(und vermutlich keine Root-Berechtigungen haben), werden alle Prozesse, zu deren Beendigung Sie berechtigt sind, sofort abgebrochen - Ihre gesamte Sitzung, wodurch Sie abgemeldet werden.

Chronitis
quelle
9
Und beachten Sie, wenn Sie diesen Befehl mit sudo wie ausführen, wird sudo kill -9 -1der Computer neu
Anwar
Wird es wirklich neu starten? Es scheint, als würde es einfach abstürzen.
user606723
@ user606723 Der Init-Prozess wird nicht beendet und kann entscheiden, was (wenn überhaupt) mit allen anderen Prozessen geschehen soll, die beendet wurden.
Random832,
3
@Anwar es wird nicht notwendigerweise neu gestartet, es wird Sie dazu bringen, nur init auszuführen, was möglicherweise eine Shell erzeugt oder andere Dienste wieder aufruft.
Mikebabcock
27

Versuchen

man kill

um eine Erklärung des Befehls kill zu erhalten ..

es sagt:

Eine PID von -1 ist etwas Besonderes. Es zeigt alle Prozesse außer dem Kill-Prozess selbst und init an.

und

Beispiele

kill -9 -1

 Kill all processes you can kill.

Ich hoffe, Sie verstehen, warum Ihr Computer Sie abmeldet, wenn Sie alle Prozesse beenden. Du hast alles aufgegeben.

Hoffe das hilft.

Mondjunge
quelle
18
+1 für das Zeigen auf man. "Bring einem Fisch bei, wie er gefüttert wird, manund du fütterst ihn ein Leben lang." (
Wortspiel
7

Sie geben -1als Prozess-ID an: aus der killManpage:

 A  PID of -1 is special; it indicates all processes except the
 kill process itself and init.
Tom Regner
quelle