如何守护一个php脚本与upstart一起运行

时间:2013-01-08 08:52:11

标签: php ubuntu upstart

我有一个作为cron作业运行的PHP脚本。该脚本使用数据库来查看它是否有任何操作,并确保其兄弟尚未运行。

我想将PHP脚本作为带有upstart的守护进程运行。

我已将/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脚本更改为循环?如何告诉新贵继续启动脚本?

1 个答案:

答案 0 :(得分:5)

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

但是,请记住,只是循环并一次又一次地执行脚本,可能会占用许多CPU周期。因此,您可以考虑在每次迭代中调用类似usleep的函数,以使deamon消耗更少的CPU。因此,例如,您让脚本每2秒运行一次。