我在 Windows 和 Linux 上运行着一些进程,我需要一个看门狗,当某个进程停机超过 N 秒/分钟时,它会向我发送电子邮件,并且这个看门狗会在 N 时间和 N 次尝试后尝试启动它,有这样的事情吗?
答案1
虽然 Nagios 可以很好地监控进程并向您发送通知,但它缺乏在发生故障时执行操作的能力(没有附加组件),并且设置起来有点复杂。
监控可以在错误情况下执行某些操作,并且设置起来更容易。因此,如果进程崩溃或占用过多资源,您可以将其设置为重新启动进程。
但是它并不像 nagios 那样提供管理多个主机的中央界面。M/Monit 提供了这个功能,但是它不是免费的。
答案2
如果它是 Windows 中的服务(听起来应该是),您可以使用“恢复”选项卡重新启动它,并设置一个脚本来向您发送电子邮件
http://thommck.files.wordpress.com/2011/03/image1.png
对于 Linux:
这是一个简单的 bash 脚本,用于查看某个进程是否正在运行 http://www.savelono.com/linux/bash-a-simple-script-to-check-if-a-process-is-running.html
Nagios 是一种适用于这两种环境的解决方案,但需要一些设置。
答案3
您可以使用 Nagios 来实现这一点。Nagios 肯定会为您提供您感兴趣的启动/停止通知。您可以通过修改重新检查和通知间隔来指定通知您的时间。您还可以下载插件,如果应用程序停止运行,它们也可以触发脚本。我个人没有使用过其中的脚本部分,但在一些地方读过关于它们的内容。
例如,进程 X 在 Linux 中停止运行。一旦 Nagios 确定此服务器已停止 Y 分钟,它就会执行预定义脚本,例如“/sbin/service service_X restart”
答案4
对于 Linux,有snmpd
。对于 Windows,这也是可用的。至少在 Linux 中 - 如果使用“正确”的扩展进行编译,您可以定义触发操作来监视进程。