ps und top zeigen einen anderen Befehlsnamen als pkill und pgrep

ps und top zeigen einen anderen Befehlsnamen als pkill und pgrep

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 rubyund nicht als delayed_job).

Aber das tun wir psauch h?top.

Ist greping/awking meine einzige Möglichkeit, pssolche Prozesse zu beenden, oder übersehe ich etwas?

Antwort1

Versuchen Sie es mit ps -f, pgrep -fund 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.

verwandte Informationen