Wenn Sie starten das Skript nach mhawkes Vorschlag ist es eine bessere Option, aber Ihre Frage zu beantworten, wie namentlich ein bereits begonnen Skript töten Sie pkill und subprocess.check_call verwenden können:
from subprocess import check_call
import sys
script = sys.argv[1]
check_call(["pkill", "-9", "-f", script])
Genau das passieren Namen zu töten:
[email protected]:~$ cat kill.py
from subprocess import check_call
import sys
script = sys.argv[1]
check_call(["pkill", "-9", "-f", script])
[email protected]:~$ cat test.py
from time import sleep
while True:
sleep(1)
[email protected]:~$ python test.py &
[60] 23361
[email protected]:~$ python kill.py test.py
[60] Killed python test.py
Killed
, dass der Prozess mit einem SIGKIll
tötet, wenn Sie das -9 entfernen beenden möchten:
[email protected]:~$ cat kill.py
from subprocess import check_call
import sys
script = sys.argv[1]
check_call(["pkill", "-f", script])
[email protected]:~$ python test.py &
[61] 24062
[email protected]:~$ python kill.py test.py
[61] Terminated python test.py
Terminated
Das wird eine SIGTERM
senden. Termination-Signals
Sie können das Skript mithilfe der PID oder Name töten, können Sie ein wenig mehr Kontext hinzufügen? –
@PadraicCunningham Ich möchte mit dem Namen –
aufhören, welches Betriebssystem verwenden Sie? –