(12 Antworten)
Vor 5 Jahren geschlossen.
Ich muss einen Prozess beenden, der myName
enthält in seiner Beschreibung. Derzeit mache ich:
ps -ax |grep myName
I see PID
kill -9 PID
Wie kann ich dasselbe mit einem Befehl tun, ohne die PID einzugeben?
Akzeptierte Antwort:
Wenn myName
der Name des Prozesses/der ausführbaren Datei ist, die Sie beenden möchten, können Sie Folgendes verwenden:
pkill myName
pkill
sendet standardmäßig den SIGTERM
Signal (Signal 15). Wenn Sie den SIGKILL
wollen oder Signal 9, verwenden Sie:
pkilll -9 myName
Wenn myName
ist nicht der Prozessname oder beispielsweise ein Argument für einen anderen (langen) Befehl, pkill
(oder pgrep
) funktioniert möglicherweise nicht wie erwartet. Sie müssen also das -f
verwenden Möglichkeit. Von man kill
:
-f, --full
The pattern is normally only matched against the process name.
When -f is set, the full command line is used.
NOTES
The process name used for matching is limited to the 15 characters present
in the output of /proc/pid/stat. Use the -f option to match against the
complete command line, /proc/pid/cmdline.
Also:
pkill -f myName
oder
kill -9 $(pgrep -f myName)