Php 将SIGUSR1输出发送到发送控制台

Php 将SIGUSR1输出发送到发送控制台,php,console,signals,stdout,Php,Console,Signals,Stdout,我正在构建一个PHP脚本,它在一个无限循环中运行(直到它收到一个SIGINT、SIGTERM或SIGHUP),该脚本将在docker容器中运行 我还添加了一个简单的SIGUSR1钩子,它将简单地打印运行作业的一些统计信息。当我使用kill-29[PID]向作业发送SIGUSR1时,处理程序会激发并输出所述数据,但不幸的是,它会将其输出到用作STDOUT的控制台,而不是发送kill的控制台 如何将脚本输出发送到发出SIGUSR1 kill命令而不是STDOUT的控制台?将输出重定向到文件 $ ph

我正在构建一个PHP脚本,它在一个无限循环中运行(直到它收到一个SIGINT、SIGTERM或SIGHUP),该脚本将在docker容器中运行

我还添加了一个简单的SIGUSR1钩子,它将简单地打印运行作业的一些统计信息。当我使用
kill-29[PID]
向作业发送SIGUSR1时,处理程序会激发并输出所述数据,但不幸的是,它会将其输出到用作STDOUT的控制台,而不是发送kill的控制台


如何将脚本输出发送到发出SIGUSR1 kill命令而不是STDOUT的控制台?

将输出重定向到文件

$ php endless.php > /tmp/endless_output &
在另一个术语中:

$ kill -29 [PID]; cat /tmp/endless_output

使用一个文件而不是常规文件可能是值得的

+1是一种直观的方式,-1因为您将失去从控制台本身读取程序输出的能力。