Я ищу менеджер процессов, которым можно управлять из CLI (добавление, запуск, остановка, удаление), чтобы я мог управлять им программно.
Я пробовал использоватьhttps://github.com/circus-tent/circus, но проблема в том, что когда я добавляю его из CLI, процессы исчезают после перезапуска сервера. Я открыл там вопрос;https://github.com/circus-tent/circus/issues/937. Я еще не пробовал Supervisord, но, похоже, у него та же проблема,https://github.com/mnaberez/supervisor_twiddler/issues/4.
Есть ли какой-нибудь менеджер процессов, который может добавить процесс-демон из CLI, и изменения сохранятся после перезапуска, не трогая файл конфигурации? Спасибо.
Я работаю на Centos 7 и хочу демонизировать PHP CLI-скрипт для каждого зарегистрированного пользователя.
Извините, я не уверен, как объяснить это лучше. У меня есть PHP CLI-скрипт с бесконечным циклом. Скрипт запускается для прослушивания новых входящих сообщений. Скрипт должен запускаться для нового зарегистрированного пользователя, например php listen.php --user_id=111
, и останавливаться при удалении пользователя.
решение1
Пакет, который я рекомендую для этого, называется daemontools
Dan Bernstein.
Это набор инструментов для обеспечения системного надзора за службами и управления службами. Он не только заботится о запуске и остановке служб, но и контролирует демоны служб во время их работы. Помимо прочего, он предоставляет надежный интерфейс для отправки сигналов демонам служб без необходимости в pid-файлах, а также функцию ведения журнала с автоматической ротацией файлов журналов и ограничениями на дисковое пространство.
Он удовлетворяет всем вашим требованиям. Он сверхнадежен, как только вы его настроите и поймете, как им пользоваться, он требует очень мало обслуживания. Если в вашей системе возникнут проблемы, то это будут не daemontools.
- Все управление осуществляется через командную строку.
- Демоны будут перезапущены при перезапуске системы.
- Демоны можно останавливать, запускать, приостанавливать из CLI.
- Кроме того, он также ведет журнал для каждого демона.
- Он управляет быстрыми перезапусками (когда программа быстро завершает работу).
Этот пакет и лежащая в его основе конструкция — надежны как скала. Исходный код не менялся годами, но не позволяйте этому обмануть вас. Его не нужно было менять, потому что он правильный.
Я лично использовал этот пакет для надежного управления сотнями процессов-демонов на одной машине одновременно.
Конфигурация нового клиента проста, просто поместите файл управления в указанный каталог, и он будет автоматически запускаться и перезапускаться вечно, если вы не вмешаетесь. Как только вы узнаете, как должен выглядеть файл, вы создаете шаблон или способ параметризации создания файла управления.
Я думаю, что лучшим вариантом будет получить исходный пакет RPM от kteru на github и собрать из него свой собственный RPM. Его легко собрать, но RPM облегчит управление и репликацию вашей системы.
Домашняя страница и документация находятся по адресуhttp://cr.yp.to/daemontools.html
Исходный пакет CentOS 4-7 RPM доступен на github: https://github.com/kteru/daemontools-rpm
Также есть пакет под названием , runit
который, как я думаю, является ветвью daemontools
без некоторых ограничений лицензирования и распространения daemontools
и более гибкой политикой размещения каталогов. Он есть в репозиториях Debian, не знаю насчет CentOS.