当 UNIX 进程失败时接收电子邮件

当 UNIX 进程失败时接收电子邮件

我们的服务器上正在运行一个进程,该进程偶尔会失败。我希望每次发生这种情况时都能收到某种电子邮件通知。有没有简单的设置方法?

答案1

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

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

为了对系统进行更复杂的监控(而不仅仅是单个进程),请查看纳吉奥斯监控以及所有其他知名的监控工具。它们通常还支持除电子邮件之外的其他方式的通知。

对于单个系统,监控可能是最合适的解决方案。

答案2

有一个 cron 任务执行

ps -A | grep INSERTPROCESSNAME

看看你想要的东西是否存在

然后运行一些脚本来发送电子邮件。您可以随意编写脚本发送程序,使用 php、python - 任何带有 SMTP 包装器的东西。

或者,您可以使用http://www.postageapp.com并向其发送 curl 请求。

答案3

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

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

答案4

我认为有一个 nagios 检查进程。这意味着您必须设置 nagios,或者您可以按照传统方式进行操作,每分钟运行一次 cron 检查名称,看看进程是否仍然存在。如果没有找到该名称的进程,那么您就有了答案。

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

进程不会无缘无故地被终止,并且总会有证据表明进程失败的原因。日志文件中是否有任何内容可以说明进程被终止的原因?

-N

相关内容