我正在寻找一个 Linux 服务,它每 n 秒监视/检查一次正在运行的进程/守护进程列表,以检测(并注意+重新启动进程)任何问题(例如 nginx 中的分段错误)。
有没有?
答案1
你可以试试监控。它能做的不仅仅是监控进程,我想这应该不是问题。
答案2
有好几种。它们被称为watchdogs
DJB 的 daemontools 可以做到这一点(但它很恶心。我甚至没有给你链接。)
人们还编写了各种看门狗脚本的例子(这个相当不错) - 通常它是一个 shell 脚本,用于读取 PID 文件,检查相应的 PID 是否处于活动状态,如果不存在则通知您或重新启动受影响的服务。
它们通常每分钟/5 分钟/等都会用完cron
作业 - 在现实世界中几乎不需要比这更严格的粒度。
如果您有一个适当的监控系统,您通常可以挂接您的监控系统,以便警报发送到尝试重新启动已关闭的服务的处理程序脚本(但请注意此处误报的负面影响 - 在不需要时重新启动您的网络服务器可能会造成弊大于利)。