在一段时间后终止子流程

时间:2017-11-25 18:16:05

标签: python subprocess

我有两个二进制文件没有在终端上按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秒后,进程仍在运行。如何在一段时间后终止它们?

1 个答案:

答案 0 :(得分: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**可能导致进一步的问题