Linux: Wie beendet man einen Root-Prozess über den Parameternamen?

Linux: Wie beendet man einen Root-Prozess über den Parameternamen?

Ich möchte wissen, wie man Prozesse, die dem Root gehören, auf Grundlage ihrer Parameterinformationen beendet:

root      3176  0.0  0.8   3604  2252 ?        S    21:33   0:00 sudo python main.py
root      3191 65.4  4.6  96820 11744 ?        Rl   21:33  10:00 python main.py

Ich versuche es folgendermaßen, aber ohne Erfolg:

pi@raspberrypi ~ $ ps aux | grep main.py | awk '{print $2}' | xargs kill
pi@raspberrypi ~ $ sudo pkill -u root main.py

Antwort1

pkill wäre der einfachere Ansatz, Ihnen fehlt lediglich ein Parameter.

Von „man pkill“:

 -f, --full
          The pattern is normally only matched against the  process  name.
          When -f is set, the full command line is used.

In Ihrem Fall sind die Prozessnamen „python“ und „sudo“.

Antwort2

Aha, ich habe es untersucht. Sie müssen es also ändern in

ps aux|grep main.py|awk '{print $2}'|sudo xargs kill -9

Ich habe meine Antwort aktualisiert, um den angeforderten Code wiederzugeben.

verwandte Informationen