У меня есть пара PHP-скриптов, которые я успешно запускал целую вечность в Ubuntu (AWS EC2) в качестве сервисов демона Upstart. В настоящее время выполняется миграция автономного EC2 в рабочее приложение ElasticbeanStalk. Как правило, это работало хорошо, и у меня есть демоны и некоторые задания CRON, настроенные с использованием расширений Elasticbeanstalk. У меня проблема в том, что демоны падают. Я знаю, что PHP в порядке, так как я могу работать из командной строки (плюс хорошо работает на Ubuntu). Точно так же я уверен, что мой файл Upstart .conf (ниже) в порядке, так как он пришел из Ubuntu и прекрасно работает там. Он также запускается, как и ожидалось, но постоянно завершается с ошибкой «завершено со статусом 1». Статус 1 — это почти все, что я понимаю.
Извлечь из / var / log / messages
Dec 31 11:33:47 ip-172-31-0-74 init: init-pulses main process (8809) terminated with status 1
Dec 31 11:33:47 ip-172-31-0-74 init: init-pulses main process ended, respawning
INIT-pulses.conf
start on filesystem and started elastic-network-interfaces
stop on shutdown
respawn
respawn limit unlimited
script
sudo -u root php /var/www/html/index.php scripts init_pulses
end script
PHP-скрипт содержит цикл, но он никогда не попадает в PHP. Что-то не так с тем, как я выполняю команду, хотя, как я уже сказал, в Ubuntu это круто. Я пробовал разные формы одного и того же с одной и той же проблемой. Может кто-нибудь предложить какие-либо предложения о том, как построить блок сценария, чтобы он действительно смог запустить команду или какие-либо идеи о том, как отладить это?
Любая помощь, как всегда, высоко ценится
Исправлено это путем полного удаления блока скрипта и использования команды exec без sudo.
start on filesystem and started elastic-network-interfaces
stop on shutdown
respawn
respawn limit unlimited
exec php /var/www/html/index.php scripts init-pulses
Просто когда знаешь как
Других решений пока нет …