Как передать PID от одного процесса PHP к другому? - PullRequest
3 голосов
/ 23 ноября 2011

Существует долгоживущий процесс PHP, который поддерживает сигналы (SIGHUP и т. Д.), И другой процесс PHP должен знать PID первого, отправившего сигнал.

Я бы хотел установить переменную окружения, которая будет читаться во втором (клиентском) процессе и использоваться для моих целей, но putenv(...posix_getpid()...), похоже, не делает ее видимой для другого процесса.

Как сделать переменную окружения, заданную в одном процессе PHP, видимой для другого? Если это невозможно, каков предпочтительный способ (я бы не хотел использовать для этого файлы или БД)?

Ответы [ 2 ]

3 голосов
/ 23 ноября 2011

Обычной практикой является создание всемирно известного файла pid при запуске процесса демона и запись его PID в этот файл.

Другие процессы, желающие отправить сигналы демону, просто читают файл pid, чтобы получить его текущий pid и после этого отправить сигнал.

1 голос
/ 23 ноября 2011

То, о чем вы говорите, это Межпроцессное взаимодействие (IPC) . Решения включают использование сокета, именованного канала, файла, переадресации, некоторой шины / очереди сообщений и т. Д. Это распространенная и сложная проблема при разработке программного обеспечения, которая имеет множество надежных опций.

Звучит так, будто простой файл подойдет вам и, вероятно, самый простой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...