如果进程停止,则在Monit中重新运行进程

时间:2013-11-17 04:36:48

标签: unix monit

我有一个这样的脚本:

#!/usr/bin/php
<?php
file_put_contents('/home/vagrant/sleep.pid', getmypid());
sleep(9);
exit(0);

我想编写我的Monit配置,以确保此应用程序始终运行。这是我的monit配置:

set daemon 5
check process program with pidfile /home/vagrant/sleep.pid
   start program = "/usr/bin/php /home/vagrant/myphp.php"

但是在我退出程序后,Monit并没有尝试再次运行它。这有点意义,但我想知道是否有办法告诉Monit重新运行这个过程。

1 个答案:

答案 0 :(得分:2)

在与Monit玩游戏之后,我发现我没有正确运行Monit。

首先,您需要将以下配置添加到您的监控文件中:

set httpd port 2812 and allow monit:monit
set daemon 5
check process program with pidfile /home/vagrant/sleep.pid
    start program = "/usr/bin/php /home/vagrant/myphp.php"

然后使用以下命令运行monit:

monit -c monit.conf

现在Monit在后台运行并重新运行该进程,如果它死了,您可以重新启动或启动特定程序:

monit -c monit.conf start all

OR

monit -c monit.conf stop my_role