在特定时间运行python程序

时间:2014-08-15 07:58:18

标签: python

我在python写了一个网络刮刀,我希望在特定时间内运行。说1分钟,然后杀死它。我想测量一下程序的性能。目前我正在使用subprocess模块。我从另一个脚本启动程序并计算时间。

proc = subprocess.Popen(["python", my_program, arguments])

执行特定时间后,我会通过它的进程ID杀死它。

child_pid = proc.pid
os.kill(child_pid, signal.SIGTERM)

有更高效或更优雅的方法吗?

2 个答案:

答案 0 :(得分:2)

您可以使用subprocess.Popen.terminate(SIGTERM)或subprocess.Popen.kill(SIGKILL)方法:

proc = subprocess.Popen(["python", my_program, arguments])
...
proc.terminate()

顺便说一句,如果您想使用用于启动该程序的相同python程序,请使用sys.executable代替"python"

答案 1 :(得分:0)

from subprocess import Popen
from time import time

proc = subprocess.Popen(["python", my_program, arguments])
time.sleep(60)
proc.terminate()