it-swarm.com.de

Wie bricht man den Prozess mit dem Namen des Programms anstelle von PID ab?

Ich habe mein Programm Python im Hintergrund mit Nohup gestartet (siehe unten).

Nohup zook.py &

Jetzt versuche ich, diesen Prozess abzubrechen, also habe ich den Befehl ps ausgeführt, wie unten erwähnt

[email protected]:/home/david/zook# ps ax | grep zook.py
16352 pts/6    S+     0:00 grep --color=auto zook.py

Aber irgendwie weiß ich nicht, warum die PID jedes Mal geändert wird. Wann immer ich das mag -

kill -9 16352

Es heißt immer No Such Process.

Und wenn ich den px-Befehl erneut ausführe, wird die PID automatisch geändert.

Ich bin mir nicht sicher, wie ich diesen Prozess beenden soll.

Kann ich den Prozess irgendwie mit dem Namen beenden?

PDATE: -

Das bekomme ich. Ich habe pkill -9 zook.py und dann habe ich ps Befehl wie unten erwähnt und es ist ständig shwoing zook.py?

[email protected]:/home/david/zook# pkill -9 zook.py

[email protected]:/home/david/zook# ps ax | grep zook.py
23870 pts/6    S+     0:00 grep --color=auto zook.py

[email protected]:/home/david/zook# ps ax | grep zook.py
23872 pts/6    S+     0:00 grep --color=auto zook.py

[email protected]:/home/david/zook# ps ax | grep zook.py
23874 pts/6    S+     0:00 grep --color=auto zook.py

[email protected]:/home/david/zook# ps ax | grep zook.py
23876 pts/6    S+     0:00 grep --color=auto zook.py
6
arsenal

Verwenden Sie killall:

killall <the_process_name>
5
precise

Die PID in Ihrem Beispiel, die sich ständig ändert, ist die Prozess-ID Ihres grep, der versucht, die PID zu finden. Das bedeutet, dass Ihr ps und grep nicht den tatsächlichen Prozess finden, den Sie suchen.

Versuchen Sie, Ihr Skript ohne das abschließende "&" auszuführen, um zu sehen, was es tut. Wahrscheinlich scheitert es leise an dir und fängt gar nicht erst an.

Sie können auch das Tool System Monitor im Bindestrich verwenden, um die vollständige Liste der Prozesse mit Prozess-IDs anzuzeigen.

3
ImaginaryRobots

sie können pkill verwenden, um das gleiche Kill-Signal wie das Kill-Signal zu senden

Eg: pkill firefox 
pkill -9 firefox
2
Meow

Du kannst mit xkill töten. Gehen Sie einfach zum "Ausführen" -Dialog (Alt+F2), geben Sie xkill ein und Ihr Mauszeiger ändert sich in ein "x". Zeigen Sie auf die Anwendung, die Sie beenden möchten, und klicken Sie darauf. Die Anwendung wird beendet. Kann manchmal viel schneller sein als das Laden des Systemmonitors.

2
kamil

Das Grundproblem ist mit dem Befehl 'ps ax | grep etwas '. Dies listet immer "grep ... something" als einen der Prozesse auf, bei denen es sich tatsächlich um das von Ihnen gestartete "grep" handelt. Verwenden Sie stattdessen 'pgrep', um die pid zu erhalten

siehe: https://unix.stackexchange.com/questions/74185/how-can-i-prevent-grep-frow-showing-up-in-ps-results

1
Vishu