Ich schrieb ein Python-Skript, um einen Unterprozess zu initiieren und dann nach einem Intervall von n Sekunden zu töten. Wenn ich time.sleep (n) verwende, wird der Prozess nicht beendet, aber wenn ich diesen Schlafteil entferne, wird er mit os.kill (proc.pid, signal.SIGKILL) beendet. Kann mir bitte jemand dabei helfen?Kill einen Unterprozess nach einem Zeitintervall mit Python in OS X
import time,subprocess,os,signal
timeLeft = 5
while timeLeft > 0:
print('Time left is ' + str(timeLeft))
time.sleep(1)
timeLeft = timeLeft - 1
pass
proc = subprocess.Popen(['open','/Users/06 Green Day - Boulevard Of Broken Dreams.mp3'])
time.sleep(2)
os.kill(proc.pid, signal.SIGKILL)
Ich versuchte mit proc.terminate() auch, aber vergeblich.
Zuerst tat es funktionierte, als ich dies mit einer MP3-Datei versucht, zu öffnen. Die mp3 Datei wurde standardmäßig von der iTunes App geöffnet und es wurde nicht beendet, das mp3 wurde weiter abgespielt. Zweitens habe ich versucht, einen Alarm zu machen, der nach einer bestimmten Zeit beginnt und nach einer festgelegten Zeit endet, so dass die Position zum Starten des Subprozesses nicht geändert werden kann. – Prashant
@ Prashant dann manuell wählen Sie die Datei, um es mit wie in meinem Beispiel zu öffnen, wählen Sie ein Programm, das korrekt heruntergefahren wird. – MadisonCooper