(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)