我在PHP中编写了一个守护进程,我是从终端发起的。该守护进程有几个信号处理程序(使用pcntl_signal()),其中一个使用echo()输出一些状态消息。这一切都很好,花花公子,工作正常......
直到......如果我断开我的终端然后重新连接,我传递它的SIG无关紧要,我没有输出。我理解为什么 - 这是因为我的守护程序附加的STDOUT已经消失(我以前的终端会话)。但是,我仍然希望信号处理程序工作,否则它将毫无用处!我尝试了以下内容:
$fh = fopen("php://stdout","w");
fwrite($fh, "Here is a status message");
...但是,这不起作用,因为它不会重新附加新的STDOUT,它会尝试使用旧的STDOUT。
有谁知道我怎么做到这一点?
答案 0 :(得分:0)
好吧,你需要找出当前用户的tty并直接写入。 /dev/console/
我猜。