У меня есть следующий скрипт Upstart. Когда я запускаю следующую команду service worker-1 start
, все работает отлично. Я вижу бегущих рабочих с ps aux | grep php
. Я также могу использовать service worker-1 stop
, который мне нужен для перезапуска/обновления рабочих процессов. Но к сожалению этот скрипт работает только частично при перезагрузке. Сценарий выполняется (начало: задание уже запущено: worker-1, когда я пытаюсь service worker-1 start
), но я не вижу ни одного работающего воркера с ps aux | grep php
и, конечно, service worker-1 stop
возвращает stop: Unknown instance:
. Вы хоть представляете, что может быть не так?
description "Starts/kills workers."
author "Jiri Mihal"
start on (started php5-fpm and started mysql)
stop on shutdown
pre-start script
echo "[`date`] Workers started" >> /var/log/worker-1.log
exec 2>>/var/log/worker-1.log
end script
post-start script
echo $$ > /var/run/worker-1.pid
for i in `seq 1 5`;
do
exec php /home/jiri/workers/dlapi.workers/workers/RpcWorkerLauncher.php Worker-1 >/dev/null 2>&1 &
done
end script
post-stop script
read -r FIRSTLINE < /var/run/worker-1.pid
kill $(($FIRSTLINE + 2))
kill $(($FIRSTLINE + 3))
kill $(($FIRSTLINE + 4))
kill $(($FIRSTLINE + 5))
kill $(($FIRSTLINE + 6))
rm /var/run/worker-1.pid
echo "[`date`] Workers stopped" >> /var/log/worker-1.log
end script