Как лучше всего управлять (выдавать командные сигналы) сценарием Daemon на основе PHP? - PullRequest
4 голосов
/ 19 января 2010

Я создал скрипт PHP Daemon для постоянного отслеживания новых файлов в определенной директории файловой системы сервера, а затем для их обработки и архивирования.

Примечание: Я использую класс php Daemon, предоставленный по адресу:
http://www.phpclasses.org/browse/file/8958.html

У меня запущен скрипт, но мне нужен способ взаимодействия с демоном и выполнения команд. Например, одной действительно полезной командой будет «STOP»! :) В настоящее время я должен убить процесс вручную.

Я сделал это перед использованием управляющих файлов (то есть, проверьте файл на наличие новой команды, выполните ее, если она существует, затем очистите файл). Я также использовал сокеты, но эта проблема на самом деле не требует каких-либо сетей. Есть ли лучший, более элегантный или естественный способ отправки командных сигналов демону?

Я нашел это:
PHP Демон / рабочая среда
Но, боюсь, я не совсем понимаю, как использовать предоставленный код.

Ответы [ 2 ]

3 голосов
/ 19 января 2010

Возможным решением будет использование сигналов - см., Например, pcntl_signal: ваш PHP-демон будет прослушивать сигналы, и вам нужно будет только отправлять сигналы извне.

Этот способ довольно часто используется в UNIX / Linux - но учтите, что функции pcntl_* не будут доступны в Windows. (Класс, который вы опубликовали, уже использует функции pcntl*, так что ничего нового здесь)

2 голосов
/ 19 января 2010

На * nix вы можете использовать сигналы для управления вашим демоном; см. pcntl_signal() и справочную страницу signal(7).

...