检查我的脚本是否已启动且未冻结的可靠方法是什么?

时间:2016-02-14 10:56:15

标签: python ruby linux reliability

我在服务器上有一个python(或ruby,并不重要)脚本,它必须是可靠的并且一直运行。如果发生了什么事情并且崩溃或被冻结我需要立即知道。以前我在考虑另一个“脚本”,例如一个cron作业,它会通过Linux每分钟检查一次 - 无论它是否在活动进程列表中。但是,现在我认为即使它是活动进程的列表,它仍然可能被冻结(它还没有崩溃,但它即将崩溃)。

不是吗?如果是这样,我正在考虑让它每分钟将一些“心跳”数据保存到文件中,因为它是更可靠的方式来知道它是否已经 AND 是否被冻结,因为如果它被冻结了,它就无法写入文件,但仍然可以在内存中。

你的建议,我应该接受吗?或者只是检查它在内存中的进程(在活动进程列表中)是否足够完美?

1 个答案:

答案 0 :(得分:2)

如果脚本没有运行会产生不良后果(如果没有,你可能不在乎,不是吗?),检查这些后果的不同症状可能是最可靠的。

例如,如果脚本是Web服务器,请让监视服务向其发出请求,并在失败时通知您。

如果可以远程或甚至异地观察到不良后果,请将监控远程控制,或者如果可能,从运行脚本的计算机外部进行监控。为什么?如果由于您的脚本停止运行而导致后果发生,因为运行它的计算机已经死亡...如果同一台计算机的任务通知您,则不会收到通知。如果它是一台不同的机器,你就会意识到这种情况。除非数据中心被烧毁。然后,您的监控服务需要位于不同的数据中心,以便您获得通知。

为可公开访问的服务器提供付费和免费监控服务,例如: Uptime Robot用于Web服务器,以防您不想自己开发和托管监控。