重启python脚本

时间:2015-06-27 05:12:42

标签: python

我有一个从流API中收集数据的脚本。我随机收到一个错误,我认为无论出于什么原因,它都是来自twitter的结尾。它不是在特定的时间发生的,我早在运行脚本后的10分钟就已经看过了,有时在2小时后就看到了它。

我的问题是如何创建另一个脚本(在运行的脚本之外),如果它因错误而终止,可以捕获,然后在延迟后重新启动。

我做了一些搜索,大多数都与在linux上使用bash有关,我在Windows上。其他建议是使用Windows任务计划程序,但只能在已知时间设置。

我遇到了以下代码:

import os, sys, time

def main():  
    print "AutoRes is starting"
    executable = sys.executable
    args = sys.argv[:]
    args.insert(0, sys.executable)

    time.sleep(1)
    print "Respawning"
    os.execvp(executable, args)

if __name__ == "__main__":  
    main()

如果我没弄错,那么代码内部运行正确吗?问题是我的脚本目前正在收集数据,我无法终止编辑。

1 个答案:

答案 0 :(得分:2)

这个怎么样?

from os import system
from time import sleep

while True: #manually terminate when you want to stop streaming
    system('python streamer.py')
    sleep(300) #sleep for 5 minutes

同时,当streamer.py出现问题时,通过调用sys.exit(1)

从那里结束

确保此内容与streamer.py位于同一目录中。