更改计算机安全性后,Python脚本停止

时间:2016-07-08 20:31:05

标签: python

我有一个我在工作中使用的python脚本,用于检查网页的内容并向我报告更改。它曾经每5分钟运行一次精确检查网站,然后我们公司切换了一些安全软件。该脚本仍将运行,但会在一小时左右后停止。它不一致,它有时会是几个小时,但大约一个小时似乎平均。 shell中没有报告错误。有没有办法让它自动重启?代码如下,它用于调用函数然后调用sleep命令,但我添加了for循环和打印行以进行调试,以查看它停止的时间。

import time
import datetime
import txtWip

while True:
    txtWip.main()
    for i in range(1, 300,100):
        current_time = time.strftime(r"%d.%m.%Y %H:%M:%S", time.localtime())
        print(current_time)
        time.sleep(100)

1 个答案:

答案 0 :(得分:0)

你想要的是你的程序作为守护进程[1]运行:后台进程不再响应普通的SIGKILL甚至是SIGHUP。您还希望此守护程序在终止时重新启动 - 有效地使其永久运行。

不是编写自己的守护程序脚本,而是更容易执行以下操作之一:

  • 如果在Linux上,请使用Upstart

    这是init.d守护程序的替代品,它可以在您的计算机运行时监控所有进程。它能够在发生意外崩溃时重新生成流程 - 请参阅an example herePython-specific example here。它是此平台上此类任务的黄金标准。

    对于某些Ubuntu版本,systemd是浪子,应该使用它。

    external bash script的替代方案也不需要弄乱upstart

  • 如果在Windows上,请使用ReStartMe

  • 如果在Mac上,请相应地安装和配置runit

[1] 以下不是跨平台建议。您可能需要或可能不需要将其作为a true daemon运行。一个简单的后台作业(即通过在&到最后运行时附加python <file_name>.py来调用)应该足够了 - 这将在您退出时运行它的终端时退出,但是你可以绕过这个使用Linux实用程序screen