我正在运行 Ubuntu 13.04,并安装了相应版本的 monit(5.5-6)和 asterisk(1.8.13.1)。我已设置 monit 来监视我的 asterisk 日志文件,以查看是否与我的 SIP 提供商断开连接,并重新启动 asterisk 以建立新连接。以下是 monit 监视脚本的相关部分:
check file messages with path "/var/log/asterisk/messages"
start program = "/etc/init.d/asterisk start"
stop program = "/etc/init.d/asterisk stop"
if match "Retransmission timeout reached" then restart and noalert [email protected]
if match "timed out, trying again \(Attempt " then restart and noalert [email protected]
错误检测工作正常,当条件满足时我会收到邮件。Monit 也会停止 asterisk 守护进程,并且 /var/run 中的相应 PID 文件会被正确删除。但是 asterisk 不会再次启动。monit 或 asteriks 日志文件中没有相应的错误。
在这种情况下,错误是什么?我可以在哪里找到更多调试信息?
答案1
有时您需要在非守护进程模式下以最高详细程度运行 monit,同时引发错误(例如,将要监视的字符串回显到日志文件中),以确定问题是什么。
停止 monit 并使用以下命令启动它:
monit -c /path/to/monit.conf -vv -I 2>&1 | tee /tmp/monit_debug.log
引发错误并报告您所看到的内容。