在我们的服务器上运行的进程每隔一段时间都会失败。 每当发生这种情况,我都希望收到某种电子邮件通知。 有没有简单的方法来设置?
最简单的方法可能是这一行(SpliFF的答案启发):
failing_process || mail -s 'Process failed' [email protected]
为了对系统进行更为复杂的监控(而不仅仅是一个进程),请查看Nagios , monit和所有其他众所周知的监控工具。 他们通常还通过其他方式支持通知,而不仅仅通过电子邮件。
对于单个系统, monit可能是最合适的解决scheme。
有一个执行的cron作业
ps -A | grep INSERTPROCESSNAME
并看到你想要的是在那里
然后运行一些脚本发送电子邮件。 你可以使用php,python来编写脚本的发送者 – 任何带有SMTP封装的东西。
如果进程完全退出,可以在bash中执行:
myprocess & wait echo "process details" | mail -s "process failed" [email protected]
我认为有一个nagios检查进程。 这意味着您必须设置nagios,或者您可以按照旧式的方式来执行此操作,如果过程仍然存在,则每分钟运行一次cron以检查名称。 如果没有find这个名字的过程,那么你有你的答案。
如果正在运行的进程使用tcp / udp端口。 您可以在该端口上收听,如果失败,您会收到一封电子邮件。 我想你也可以在这里使用CRON。
这个过程没有任何理由不会被杀死,而且总是有证据表明过程失败。 日志文件中是否有任何内容为什么进程被终止?
-N