2017-11-25 157 views
0

我有两个二进制文件在终端没有按CTRLC-C时没有终止。我使用子进程调用来调用这些二进制文件。但我想在一段时间后终止它们。以下是我尝试:经过一定时间后终止子进程

cmd_1 = [**SOME COMMANDS**] 
    cmd_2 = [**SOME COMMANDS**] 
    commands = [cmd_1, cmd_2] 
    procs = [Popen(i) for i in commands] 
    for p in procs: 
     time.sleep(60) 
     p.kill(); 

但60秒后,进程仍在运行。如何在一段时间后终止他们?

+0

顺便说一句我删除了我的答案,因为我发现在'Popen'调用中没有'timeout'。 –

回答

3

第一处理将在60秒后120 time.sleep(60)之后被杀死,而第二个将要在循环

cmd_1 = [**SOME COMMANDS**] 
cmd_2 = [**SOME COMMANDS**] 
commands = [cmd_1, cmd_2] 
procs = [Popen(i) for i in commands] 
time.sleep(60) 
for p in procs: 
    p.kill() 

然而外,值得指出的是的是**SOME COMMANDS**可能是造成进一步的问题