![Wie kann ich den Prozess mit dem Programmnamen statt mit der PID beenden?](https://rvso.com/image/623632/Wie%20kann%20ich%20den%20Prozess%20mit%20dem%20Programmnamen%20statt%20mit%20der%20PID%20beenden%3F.png)
Ich habe mein Python-Programm im Hintergrund nohup
wie unten beschrieben gestartet -
nohup zook.py &
Jetzt versuche ich, diesen Prozess zu beenden, also habe ich den ps
unten angegebenen Befehl ausgeführt.
root@phxdbx1145:/home/david/zook# ps ax | grep zook.py
16352 pts/6 S+ 0:00 grep --color=auto zook.py
Aber irgendwie wird jedes Mal die PID geändert, ich weiß nicht warum. Immer wenn ich das so mache -
kill -9 16352
Es heißt immer: No Such Process
.
Und wenn ich den px-Befehl erneut ausführe, sehe ich, dass die PID automatisch geändert wurde.
Ich bin also nicht sicher, wie ich diesen Prozess beenden kann.
Gibt es eine Möglichkeit, den Prozess mit dem Namen irgendwie zu beenden?
Ich habe es versucht mit
killall zook.py
aber es funktioniert bei mir nicht und ich bekomme -
zook.py: no process found
Gibt es noch eine andere Möglichkeit? Irgendwie wird jedes Mal die PID geändert. Ich kann sie also nicht verwenden.kill -9 pid
AKTUALISIEREN:-
Das ist, was ich bekomme. Ich habe es getan pkill -9 zook.py
und dann den PS-Befehl wie unten beschrieben ausgeführt und es wird ständig zook.py angezeigt?
root@dbx1145:/home/david/zook# pkill -9 zook.py
root@dbx1145:/home/david/zook# ps ax | grep zook.py
23870 pts/6 S+ 0:00 grep --color=auto zook.py
root@dbx1145:/home/david/zook# ps ax | grep zook.py
23872 pts/6 S+ 0:00 grep --color=auto zook.py
root@dbx1145:/home/david/zook# ps ax | grep zook.py
23874 pts/6 S+ 0:00 grep --color=auto zook.py
root@dbx1145:/home/david/zook# ps ax | grep zook.py
23876 pts/6 S+ 0:00 grep --color=auto zook.py
Antwort1
Wenn Sie sich ansehen, was rechts von dieser PID steht, bemerken Sie vielleicht, dass es sich um die PID von grep handelt, das nach Ihrem Suchbegriff sucht. Deshalb ist sie jedes Mal anders. Wenn Sie Ihre Shell von grep zurückerhalten, ist grep natürlich weg.
Sie finden Ihren Prozess unter einem anderen Namen, wenn er noch läuft. Versuchen Sie es ps ax | grep python
stattdessen oder noch besser, pgrep python
wenn Sie es haben.
Antwort2
Um das Grep für den Prozess durchzuführen, können Sie verwenden
ps ax|grep name|grep -v grep
dadurch werden die Grep-Befehle entfernt; wenn Ihr Skriptname jedoch nicht angezeigt wird, müssen Sie wahrscheinlich „ps axw“ ausführen, um eine längere Befehlszeile zu erhalten.
ps axww|grep name|grep -v grep