我编写了一个python脚本来启动子进程,然后想要在n秒的间隔后终止它。当我使用time.sleep(n)时它不会杀死进程但是当我删除这个睡眠部分时,它会通过使用os.kill(proc.pid,signal.SIGKILL)来杀死它。有人可以帮我吗?
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)
我尝试过proc.terminate()但是徒劳无功。
答案 0 :(得分:1)
用sys.exit(0).
答案 1 :(得分:0)
import time,subprocess,os,signal
proc = subprocess.Popen(["notepad.exe","data.out"])
timeLeft = 5
while timeLeft > 0:
print('Time left is ' + str(timeLeft))
time.sleep(1)
timeLeft = timeLeft - 1
pass
os.kill(proc.pid, signal.SIGTERM)
如果你重新排列这样的代码,它应该启动进程,倒计时timeleft
然后终止进程。我确实必须使用SIGTERM
。