我有一个作为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脚本更改为循环?如何告诉新贵继续启动脚本?
答案 0 :(得分:5)
守护程序是一种程序,在被告知之前不会停止。但是,您的脚本会自行终止。所以是的,你需要在你的脚本中创建一个循环,每次都会重新运行它。
但是,请记住,只是循环并一次又一次地执行脚本,可能会占用许多CPU周期。因此,您可以考虑在每次迭代中调用类似usleep的函数,以使deamon消耗更少的CPU。因此,例如,您让脚本每2秒运行一次。