0

我刚刚为我的应用程序编写了 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。

我希望我写得很清楚:)

4

1 回答 1

0

好吧,你不能,发送信号只是设置一些操作系统原语,它与设置你的守护进程和另一方面用于生成信号的工具之间的通信路径无关。您拥有的替代方法是观看守护程序的控制台输出,或者将守护程序转储状态转储到日志文件并创建某种实用程序来发送信号并打印日志文件(如果您要这样做,为什么不抛出完全退出日志文件并设置定期转储日志,因为信号不是进行进程间通信的礼貌方式。

于 2010-02-16T10:51:11.153 回答