我刚刚为我的应用程序编写了php守护进程,并希望实现在指定信号(SIGUSR1)上生成的一些输出信息。我在代码
中得到了信号处理程序 pcntl_signal(SIGUSR1, array($this, 'signal_status'));
和函数处理程序准备
protected function signal_status($signal_number)
{ printf("blah\n"); }
除了一件事以外,一切都有效。当我向我的守护进程发送信号(posix_kill($pid, SIGUSR1)
甚至是bash中的简单kill -10 pid
)时,我在控制台中输出了启动守护进程。
是否可以获取调用者的文件描述符而不是守护进程的文件描述符?我不想将这些数据发送到指定的输出(例如在kill -10 PID之后)而不是发送到守护进程的FD中。
我希望我写清楚这一点:)
答案 0 :(得分:0)
嗯,你不能,发送信号只是设置一些操作系统原语,它与你的守护进程和另一方面用于生成信号的工具之间建立通信路径无关。 。您拥有的替代方案是查看守护程序的控制台输出,或者将守护程序转储状态转换为日志文件,并创建某种实用程序来发送信号并打印日志文件(如果您这样做,为什么不抛出完全退出日志文件,无论如何都要设置日志记录转储,因为信号不是进行进程间通信的礼貌方式。