Superlance crashmail 无法使用自定义邮件程序发送电子邮件

Superlance crashmail 无法使用自定义邮件程序发送电子邮件

我有主管运行一个程序,当程序崩溃时,我希望 crashmail 给我发送一封电子邮件。我已经创建了自己的二进制文件来发送邮件,我希望 crashmail 使用它。如果我从我的服务器独立运行二进制文件,它会给我发送一封电子邮件。

我根据 PID 终止了该进程,但没有发送电子邮件。

这是我的配置:

[eventlistener:crashmail]
command=crashmail -a -m [email protected] -s /usr/local/bin/mailer
stdout_logfile = /var/www/services/crashmail.log
events=PROCESS_STATE_EXITED, PROCESS_STATE_STOPPED, PROCESS_STATE_STOPPING

我的二进制文件不接受来自 STDIN 的任何内容,因为要发送通知的电子邮件是硬编码的。这会影响 crashmail 吗?

答案1

我无法使 crashmail 正常工作,因此我尝试了以下两种解决方案。

  1. 使用基于节点的事件监听器监控主管进程

监督者事件监听器

配置如下:

    [eventlistener:monitoring]
    command = /usr/bin/nodejs /etc/supervisor/monitoring.js
    events = PROCESS_STATE,PROCESS_COMMUNICATION,SUPERVISOR_STATE_CHANGE

来自文档这里,您可以监听任何事件并在该函数回调内发送电子邮件。

  1. 由于需要监控的服务是 Web 服务。我使用 cron 定期检查网站;如果返回非 200 响应代码,则在用于检查响应代码的 bash 脚本中发送电子邮件。

    #!/bin/bash
    httpCode=$(curl -s -o /dev/null -w "%{http_code}" siteUrl)
    
    if [ $httpCode -eq "200" ]
    then
        echo "OK"
    else
        //send email
    fi
    

参考:获取响应代码 curl 命令

相关内容