重新启动 python 脚本,如果不是 running/stopped/error 使用简单的 cron 作业

Restart python script if not running/stopped/error with simple cron job

总结: 我有一个 python 脚本,它使用 Twitter API 收集推文,我在后端有 postgreSQL 数据库,它收集所有流式推文.我有克服速率限制问题的自定义代码,几个月来我一直保持 运行 24/7。

问题: 有时流式传输会中断并休眠给定的秒数,但这没有帮助。我不想手动检查它。

def on_error(self,status)://tweepy method
    self.mailMeIfError(['me <me@localhost'],'listen.py <root@localhost>','Error Occured on_error method',str(error))
    time.sleep(300)
    return True

假设 mailMeIfError 是一个负责向我发送邮件的方法。

我想要一个简单的 cron 脚本,它总是检查进程,如果没有 running/error/breaks,则重新启动 python 脚本。我已经从他们使用进程 ID 的 Whosebug 中找到了一些答案。在我的例子中,进程 ID 仍然存在,因为这个脚本在错误时休眠。

提前致谢。

这一切都可以在您的一个脚本中完成。 Cron 需要配置为定期启动脚本,比如每分钟。脚本的开始只需要确定它是否是机器上自身 运行ning 的唯一副本。如果它发现另一个副本是 运行ning,它就会静静地终止。否则它会继续 运行。

这种行为被称为Singleton pattern. There are a number of ways to achieve this for example Python: single instance of program

使用进程 ID 更容易也更安全。尝试使用 watchdog.