
Oft möchte ich einen Prozess beenden, von dem ich glaube, dass er seinen Befehlsnamen geändert hat (ich denke mal durch setproctitle()
oder so ähnlich).
Anscheinend lesen pkill
, pgrep
, und Freunde die neuen Befehlsnamen nicht (d. h. der Ruby-Prozess benennt seinen Befehl um, pkill sieht ihn weiterhin als ruby
und nicht als delayed_job
).
Aber das tun wir ps
auch h?top
.
Ist greping/awking meine einzige Möglichkeit, ps
solche Prozesse zu beenden, oder übersehe ich etwas?
Antwort1
Versuchen Sie es mit ps -f
, pgrep -f
und pkill -f
.
Aus den jeweiligen Manpages:
ps -f
Do full-format listing. This option can be combined with many
other UNIX-style options to add additional columns. It also
causes the command arguments to be printed.
-
pgrep/pkill -f, --full
The pattern is normally only matched against the process name.
When -f is set, the full command line is used.