在后台运行PHP脚本


Running PHP scripts in the background

所以我想知道2013年是否有更好的方法。

较旧的答案表明类似于

shell_exec('nohup php script.php some_argument another_argument > /dev/null 2>&1 &');

这似乎有效,但看起来很奇怪。问题是我对执行的脚本没有太多的控制权。例如,我希望有可能在另一个请求中终止它。我找到的唯一解决方案是把一个文件放在某个地方,比如"exit_now.txt",然后在脚本中检查该文件是否存在,如果存在则激发exit()

您可以向调用的进程发送信号(通过来自shell的kill命令),并将信号处理程序安装到程序中,以便根据需要做出反应。

安装信号处理器的文档

pcntl_fork()和pcntl_signal()的示例