Prozeß killen, dringend

Hallo

Ein Prozeß (dosbox) 2873 läuft noch, aber ein kill 2873, auch ein killall 2873 killt ihn nicht, was jetzt ?

mfg
schwedemann
 
kill -9 PID

Hallo

Danke


Was ist eigentlich der Unterschied zu kill PID und killall PID ?
Wieso funktionieren die beiden Befehle hier nicht ?

mfg
schwededenmann
 
kill sendet per Default das Signal 15 (SIGTERM), während der Parameter -9 dafür sorgt, dass Signal 9 (SIGKILL) gesendet wird.

Allerdings kann ein Entwickler in seine Software auch Signal-Handler einbauen um das Verhalten seiner Software beim Eintreffen von Signalen besser zu steuern. Dieses Steuern kann auch ein einfaches Ignorieren der Signale sein oder ein Ignorieren bis eine bestimmte Bedingung erfüllt ist (z.B. das Beenden eines Kindprozesses, was bei Emulatoren häufig notwendig ist, damit die Hardware-Ressourcen wieder korrekt freigegeben werden).
 
kill ohne Argument sendet ein (SIG-)TERM(-inate) an den Prozess. Das Signal kann vom Prozess aber abgefangen und gehandelt, oder einfach ganz ignoriert werden. kill -9 sendet ein SIGKILL-Signal an den Prozess. Dieses Signal kann im Gegensatz zum SIGTERM nicht abgefangen werden und bewirkt, dass dem Prozess jegliche CPU Cycles abgesprochen werden. Der Prozess wird förmlich "abgeschossen" und hat dabei auch keine Chance zum Speichern von Daten im RAM oder jeglichem anderen kontrollierten Beenden.

Oder anders ausgedrückt:
https://www.youtube.com/watch?v=Fow7iUaKrq4

Weil die Frage aufkam:
killall nimmt den Prozessnamen als Argument, kill die PID.
 
Zuletzt bearbeitet:
Auch noch eine gute Eselsbrücke:

kill == Bitte bitte Programm beende dich, ich flehe dich an
kill -9 == Ich schneide dir einfach die Kehle durch ohne Vorwarnung
 
Auch noch eine gute Eselsbrücke:
Oder man benutzt statt Ziffern direkt normale Signalbezeichner, dann ist es auch ersichtlicher ;) :

Code:
# kill -KILL 123
# kill -SIGKILL 123
# pkill -TERM foo
-----------------
Btw: man kann mittels (p)kill auch andere Signale senden:
man signal hat gesagt.:
17 SIGSTOP stop process stop (cannot be caught or
ignored)
19 SIGCONT discard signal continue after stop

29 SIGINFO discard signal status request from keyboard
30 SIGUSR1 terminate process User defined signal 1
31 SIGUSR2 terminate process User defined signal 2
SIGINFO/SIGUSR (programmdefiniert) lässt bei einigen Tools einen "Zwischenstatus" ausgeben, wie z.B bei dd oder dump bereits kopierte Bytes / geschätzte "Restzeit" für einen dump usw.)
 
Zurück
Oben