从分离的守护程序中的SIG处理程序输出

时间:2011-02-17 11:57:17

标签: php stdout daemon

我在PHP中编写了一个守护进程,我是从终端发起的。该守护进程有几个信号处理程序(使用pcntl_signal()),其中一个使用echo()输出一些状态消息。这一切都很好,花花公子,工作正常......

直到......如果我断开我的终端然后重新连接,我传递它的SIG无关紧要,我没有输出。我理解为什么 - 这是因为我的守护程序附加的STDOUT已经消失(我以前的终端会话)。但是,我仍然希望信号处理程序工作,否则它将毫无用处!

我尝试了以下内容:

$fh = fopen("php://stdout","w");
fwrite($fh, "Here is a status message");

...但是,这不起作用,因为它不会重新附加新的STDOUT,它会尝试使用旧的STDOUT。

有谁知道我怎么做到这一点?

1 个答案:

答案 0 :(得分:0)

好吧,你需要找出当前用户的tty并直接写入。 /dev/console/我猜。