Управление процессами — добавление процесса-демона из CLI

Управление процессами — добавление процесса-демона из CLI

Я ищу менеджер процессов, которым можно управлять из 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

Пакет, который я рекомендую для этого, называется daemontoolsDan Bernstein.

Это набор инструментов для обеспечения системного надзора за службами и управления службами. Он не только заботится о запуске и остановке служб, но и контролирует демоны служб во время их работы. Помимо прочего, он предоставляет надежный интерфейс для отправки сигналов демонам служб без необходимости в pid-файлах, а также функцию ведения журнала с автоматической ротацией файлов журналов и ограничениями на дисковое пространство.

Он удовлетворяет всем вашим требованиям. Он сверхнадежен, как только вы его настроите и поймете, как им пользоваться, он требует очень мало обслуживания. Если в вашей системе возникнут проблемы, то это будут не daemontools.

  1. Все управление осуществляется через командную строку.
  2. Демоны будут перезапущены при перезапуске системы.
  3. Демоны можно останавливать, запускать, приостанавливать из CLI.
  4. Кроме того, он также ведет журнал для каждого демона.
  5. Он управляет быстрыми перезапусками (когда программа быстро завершает работу).

Этот пакет и лежащая в его основе конструкция — надежны как скала. Исходный код не менялся годами, но не позволяйте этому обмануть вас. Его не нужно было менять, потому что он правильный.

Я лично использовал этот пакет для надежного управления сотнями процессов-демонов на одной машине одновременно.

Конфигурация нового клиента проста, просто поместите файл управления в указанный каталог, и он будет автоматически запускаться и перезапускаться вечно, если вы не вмешаетесь. Как только вы узнаете, как должен выглядеть файл, вы создаете шаблон или способ параметризации создания файла управления.

Я думаю, что лучшим вариантом будет получить исходный пакет 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.

Связанный контент