我正在尝试使用 monit 来监控一个程序,并在程序出现故障时启动它。这是我的基本配置:
check process maitre_d_8000 with pidfile /home/tango/env/maitre_d/8000/pid.pid
start program = "/bin/bash -c 'cd /home/tango/env/maitre_d/; ../bin/python maitre_d/main.py 8000/config.json &'" as uid tango and gid tango
stop program = "/bin/bash -c 'cd /home/tango/env/maitre_d/; ../bin/python kill.py 8000/pid.pid'" as uid tango and gid tango
但是,每当我终止该程序时,我都会在日志中收到以下信息:
[EDT Apr 17 21:30:25] error : 'maitre_d_8000' process is not running
[EDT Apr 17 21:30:27] info : 'maitre_d_8000' trying to restart
[EDT Apr 17 21:30:27] info : 'maitre_d_8000' start: /bin/bash
[EDT Apr 17 21:30:57] error : 'maitre_d_8000' failed to start
根本没有什么帮助。而且 bash 命令应该可以正常工作,su tango -c "/bin/bash -c 'cd /home/tango/env/maitre_d/; ../bin/python maitre_d/main.py 8000/config.json &'"
在终端中运行可以成功启动程序。
知道可能出了什么问题吗?
答案1
在以下机构的帮助下这个答案之后,我就能够弄清楚发生了什么:Python 遇到了 MemoryError。