2017-11-25 15 views
0

ターミナルでCTRLC-Cを押すことなく終了していない2つのバイナリがあります。サブプロセスコールでこれらのバイナリを呼び出します。しかし、私はそれらをある程度の時間の後に終了したい。ここに私がしようとするものである:時間の経過後にサブプロセスを終了する

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

最初のプロセスが120 time.sleep(60)の後、60秒後に第2の意志を殺される

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**があることができることは注目に値しますそれ以上の問題が発生しました

関連する問題