18

我进行了很多搜索以找到确切的答案,但没有找到任何答案。

许多人提到我们应该命令结束时不要等待响应。
例如在后台运行bg.php,建议这样做:

exec("/usr/bin/php bg.php &");  

但这对我不起作用。并且主脚本等待bg.php的完整执行。

我还阅读了某处以在日志文件中写入bg.php输出,但我的后台脚本不产生任何输出。它做了一些处理,然后在数据库中写入一些东西。

我只想让我的脚本运行 bg.php 而不要等待它结束。

请帮助我包括正确的代码。

4

2 回答 2

23

您也必须在某处重新路由程序输出,通常是 /dev/null

exec($cmd . " > /dev/null &");
于 2012-10-11T15:11:04.573 回答
1

你考虑过使用屏幕吗?您可以启动在分离进程中运行的屏幕会话。

screen -d -m -S my_bg_session /usr/bin/php bg.php

如果它仍在运行,您可以稍后连接到它:

screen -r my_bg_session
于 2015-10-11T00:22:05.640 回答