运行非常长的脚本-如何保持它们运行并在它们失败时重新启动它们


running really long scripts - how to keep them running and start them again if they fail?

我需要在CENTOS服务器上运行一堆长时间运行的进程。

如果我离开进程(python/php脚本)运行有时进程将停止运行,因为微不足道的错误,例如。字符串编码问题或有时,因为进程似乎被服务器杀死。

我尝试使用nohup并从crontab

中启动作业。

是否有任何方法可以保持这些进程以这样一种方式运行,即保存所有变量,并且我可以从停止的地方重新启动脚本?

我知道我可以将其编程到代码中,但我更喜欢一个通用的实用程序,它可以保持这些东西运行,以便脚本完成,即使有微不足道的错误。

也许我需要某种流程管理工具?

非常感谢您的建议

是否有任何方法可以保持这些进程以这样一种方式运行,即保存所有变量,并且我可以从它停止的地方重新启动脚本?

是的。这就是所谓的创建"检查点"或"纪念品"。

我知道我可以编程这个

好。开始。每个问题都是独一无二的,所以你必须创建、保存和重新加载纪念品。

,但更喜欢一个通用的实用程序,可以保持这些东西的运行,使脚本完成,即使有微不足道的错误。

它不能很好地概括。并非所有变量都可以保存。只有你自己知道怎样才能以一种有意义的方式重启你的进程。

也许我需要某种流程管理工具?

没有。

小错误;字符串编码问题

通常,我们通过单元测试找到这些。这节省了大量的编程工作,以解决错误。一盎司的预防胜过十分愚蠢的变通。

有时是因为进程似乎被服务器杀死了。

什么?你最好找出原因。一盎司的预防胜过十分愚蠢的变通。