как демонизировать php-скрипт для запуска с помощью upstart
У меня есть PHP-скрипт, который выполняется как задание cron. Сценарий использует базу данных, чтобы узнать, есть ли у нее какие-либо дела, и убедиться, что ее собратья еще не запущены.
Я хотел бы запустить 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-скрипт на цикл? Как мне сказать выскочке, чтобы он продолжал запускать скрипт?
1 answers
Демон - это тип программы, которая не останавливается, пока ей об этом не скажут. Однако ваш сценарий завершается сам собой. Так что да, вам нужно сделать цикл в своем скрипте, который будет перезапускать его каждый раз.
Однако имейте в виду, что простое выполнение цикла и выполнение вашего сценария снова и снова может привести к тому, что он будет потреблять много циклов процессора. Таким образом, вы можете рассмотреть возможность вызова функции, такой как usleep, на каждой итерации, чтобы сделать deamon немного менее трудоемким. Так, например, вы позволяете своему скрипт запускается каждые 2 секунды.