получение tty звонящего в обработчике сигналов в php - PullRequest
0 голосов
/ 16 февраля 2010

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

    pcntl_signal(SIGUSR1, array($this, 'signal_status'));

и обработчик функций подготовлен

  protected function signal_status($signal_number)
  { printf("blah\n"); }

Все работает, кроме одной вещи. Когда я посылаю сигнал своему демону (posix_kill($pid, SIGUSR1) или даже просто kill -10 pid в bash), я получаю вывод в консоли, которая запускает демон.

Можно ли получить файловый дескриптор вызывающей стороны, а не демона? Я не хочу отправлять эти данные на указанный выход (например, после kill -10 PID), а не в FD демона.

Надеюсь, я написал это ясно:)

1 Ответ

0 голосов
/ 16 февраля 2010

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

...