Привет всем) Есть проект, в котором используются фоновые обработчики очередей задач, например отправка писем. Эти фоновые обработчики работают в виде демоном. Каждый демон настроен в upstart'е, для того что бы в случае падения, система автоматически его запускала. Но есть небольшое неудобство, заключается оно в том, что для каждого демона нужно создавать отдельный конфиг апстарта вручную. ОС: Ubuntu. Вопрос: есть ли для PHP какая либо утилита, которая позволяла бы в проекте создать конфиг файл, по которому бы демоны автоматически экспортировались в апстарт. Или что бы эта утилита сама отслеживала работу демонов и перезапускала их в случае падения. Знаю что есть подобные утилиты в других ЯП например в руби это фореман, в ноде это например pm2. Но хотелоcь бы найти что то более "родное" именно для PHP. Чего хотелось бы от этой утилиты: - можно указывать кол-во инстансов демона - авто-перезапуск через определенные промежутки времени (как по крону) - авто-запуск при падении демона - авто-запуск при старте ОС - веб-интерфейс отображающий текущее потребление памяти и strout и strerr
Слушай, ну всё упрется в exec и права. Нужна будет или обёртка над root, простой скомпиленый скрипт с setuid(0); и исполнением уже от рута. Это опасно, прямой путь в ад в кривых руках. Можно настроить учетку apache (если php-fpm) чтобы можно было работать в таких-то директориях и запускать такие-то процессы, но это все долго и муторно. Я для supervisor'а делал минискриптец с for'ом и прочими прелестями. Чик-чик и конфиг готов. Но это статический путь. С динамикой определённо exec. Или через базу как-то, зависит от твоего upstart'а.
Остановился на супервайзере, из плюсов: - легко ставится через apt-get - имеет веб интерфейс в котором можно делать старт/стоп/рестарт демонов и смотреть логи - конфиги демонов можно хранить прямо в проекте (!) http://supervisord.org/configuration.html#include-section-settings - легко настроить использование supervisorctl без рута http://coffeeonthekeyboard.com/usin...nux-permissions-but-without-root-or-sudo-977/ - также можно демонов для проекта объединить в группу и всей группой их рестартовать http://serverfault.com/questions/586708/how-can-i-control-a-whole-supervisor-group-at-once
Да спрашивал про родное для ПХП) Но супервизор оказался оч. удобным и простым в настройке и использовании. А что касается "родных" демонов для ПХП, есть конечно варианты, но по сравнению с возможностями и удобством супервизора они не оч. хороши. Так что однозначно супервизор в прод)