Отправка синхронного сигнала / сообщения на долго работающий PHP-скрипт

#php #signals #systemd

#php #сигналы #systemd

Вопрос:

У меня есть долго работающий PHP-скрипт, который я пытаюсь преобразовать в systemd демон.

Во время планирования демона я подумал, что могу просто отправить SITERM / SIGUSR1 / SIGUSR2 / etc. сигналы для перезапуска / перезагрузки моего скрипта, когда это необходимо, с помощью kill команды, но после прочтения systemd документации я заметил этот бит в разделе «ExecReload»:

Однако обратите внимание, что перезагрузка демона путем отправки сигнала (как в приведенной выше строке примера) обычно не является хорошим выбором, поскольку это асинхронная операция и, следовательно, не подходит для упорядочивания перезагрузки нескольких служб друг против друга. Настоятельно рекомендуется установить ExecReload= команду, которая не только запускает перезагрузку конфигурации демона, но и синхронно ожидает ее завершения.

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

Единственное, о чем я мог думать до сих пор, это:

  1. Откройте локальный сокет в демоне и прослушайте сообщения на нем
  2. Выполните любое поддерживаемое действие при получении сообщения
  3. Отправьте OK сообщение обратно отправителю после завершения действия

Есть ли лучший / рекомендуемый / оптимальный способ достижения этого?