0

可能重复:
具有超时的子
进程启动进程并阻塞直到完成的最佳方法

我有一个 python 代码,我需要在其中运行像“curl --user ....”这样的 Linux 命令。我需要运行这个命令 3600 秒。3600 秒后,我需要终止“Linux 命令进程”。我怎么可能做到这一点?

def timeout_command(command, timeout):
    import os, datetime, time, signal
    start = datetime.datetime.now()
    time_pass = 0
    while (time_pass < timeout):
        process = os.system(command)
        now = datetime.datetime.now()
        time_pass = (now-start).seconds
        print time_pass

print timeout_command("curl --user...", 3600)
print "Other2"
print "Other3"

关于如何杀死它的任何线索:“process = os.system(command)”?

此致,

4

1 回答 1

2

子流程是优雅的方式。如果您正在使用多处理(您可以每 3600 秒启动一个子进程),请使用 os.system("kill -9 + multiprocessing.current_process().pid) 在 3600 秒后杀死子进程

于 2012-09-19T20:20:20.753 回答