在UNIX进程失败时收到电子邮件

在我们的服务器上运行的进程每隔一段时间都会失败。 每当发生这种情况,我都希望收到某种电子邮件通知。 有没有简单的方法来设置?

最简单的方法可能是这一行(SpliFF的答案启发):

failing_process || mail -s 'Process failed' [email protected] 

为了对系统进行更为复杂的监控(而不仅仅是一个进程),请查看Nagios , monit和所有其他众所周知的监控工具。 他们通常还通过其他方式支持通知,而不仅仅通过电子邮件。

对于单个系统, monit可能是最合适的解决scheme。

有一个执行的cron作业

ps -A | grep INSERTPROCESSNAME

并看到你想要的是在那里

然后运行一些脚本发送电子邮件。 你可以使用php,python来编写脚本的发送者 – 任何带有SMTP封装的东西。

或者,您可以使用http://www.postageapp.com并发送一个curl请求给它。

如果进程完全退出,可以在bash中执行:

 myprocess & wait echo "process details" | mail -s "process failed" [email protected] 

我认为有一个nagios检查进程。 这意味着您必须设置nagios,或者您可以按照旧式的方式来执行此操作,如果过程仍然存在,则每分钟运行一次cron以检查名称。 如果没有find这个名字的过程,那么你有你的答案。

如果正在运行的进程使用tcp / udp端口。 您可以在该端口上收听,如果失败,您会收到一封电子邮件。 我想你也可以在这里使用CRON。

这个过程没有任何理由不会被杀死,而且总是有证据表明过程失败。 日志文件中是否有任何内容为什么进程被终止?

-N