6

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

我想使用upstart将 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 脚本更改为循环吗?我如何告诉暴发户继续启动脚本?

4

1 回答 1

5

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

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

于 2013-01-08T09:19:42.850 回答