如何将要使用upstart运行的php脚本后台监控

如何将要使用upstart运行的php脚本后台监控,php,ubuntu,upstart,Php,Ubuntu,Upstart,我有一个作为cron作业运行的PHP脚本。该脚本使用DB来查看它是否有任何事情要做,并确保它的兄弟尚未运行 我希望将PHP脚本作为一个守护进程运行,并使用 我已将我的/etc/init/super-mailer.conf文件设置为: description "super mailer" author "Rob Nugen" start on startup stop on shutdown respawn exec sudo -u www-data php -f /var/www/super

我有一个作为cron作业运行的PHP脚本。该脚本使用DB来查看它是否有任何事情要做,并确保它的兄弟尚未运行

我希望将PHP脚本作为一个守护进程运行,并使用

我已将我的
/etc/init/super-mailer.conf
文件设置为:

description "super mailer"
author "Rob Nugen"

start on startup
stop on shutdown
respawn

exec sudo -u www-data php -f /var/www/super-mailer/scripts/mailer.php
我执行
sudo start super-mailer
并运行一次

不过,它不会再运行了。为什么不呢

我还尝试将
exec sudo
行替换为

script
    sudo -u www-data php -f /var/www/clubberia-mailer/scripts/mailer.php
end script

是否需要将PHP脚本更改为循环?如何告诉upstart继续启动脚本?

守护进程是一种程序类型,在被告知之前不会停止。但是,脚本会自动终止。所以,是的,您需要在脚本中创建一个循环,每次都会重新运行它


但是,请记住,仅仅是创建一个循环并反复执行脚本,可能会消耗很多CPU周期。因此,您可能会考虑调用像每次迭代一样的函数,使DeAMon减少CPU消耗。例如,您让脚本每2秒运行一次。

您在脚本中实现了后台监控吗?如果没有,它将只运行一次。