我有几个用于进行网络爬取的脚本。它们一直在运行,并且永远不应该停止。然而,大约一周后,它们系统地“冻结”:不再有输出,对 Ctrl+C 或任何东西都没有响应。唯一的方法是kill
进程并重新启动它。
我怀疑这些问题来自我用于检索数据的库 ( urllib2
),但这个问题很难重现。
因此,我想知道如何检查进程的状态并在它被冻结时自动杀死/重新启动它。我正在考虑创建一个 PID 文件,并定期更新它。然后另一个脚本可以定期检查此 PID 文件的最后修改日期,如果它太旧,则重新启动该进程。我可以使用像Monit这样的东西来进行监控。
这是我应该怎么做的吗?是否有另一种最佳实践/常用方法来检查流程的响应性?