在OS X中使用Python在一段时间间隔后终止子进程
我编写了一个python脚本来启动一个子进程,然后希望在间隔n秒后终止它。当我使用time.sleep(n)时,它不会终止进程,但是当我删除这个睡眠部分时,它会使用os.kill(proc.pid,signal.SIGKILL)终止进程。谁能帮我一下吗在OS X中使用Python在一段时间间隔后终止子进程,python,macos,subprocess,Python,Macos,Subprocess,我编写了一个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(timeL
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(),但没有成功
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
用sys.exit(0)杀死它。
首先,当我尝试打开mp3文件时,它不起作用。默认情况下,iTunes应用程序打开了mp3文件,但没有终止,mp3继续播放。第二,我试图发出一个警报,该警报在给定时间后开始,在固定时间后结束,因此启动子进程的位置不会改变。@Prashant然后手动选择要打开的文件,就像在我的示例中,选择一个正确关闭的程序。它对我不起作用。外部应用程序继续运行。