我最近创建了一个需要在后台运行的脚本..我使用此代码运行它...
function run_in_background($Command, $Priority = 0) {
if($Priority)
$PID = exec("nohup nice -n $Priority $Command 2> /dev/null & echo $!");
else
$PID = exec("nohup $Command 2> /dev/null & echo $!");
return($PID);
}
并像这样使用
run_in_background('curl http://www.mydomain.com/mypage.php',5);
不幸的是,它没有在后台运行......
我也用过:
shell_exec
而不是
exec
但它仍然不起作用..我的设置有问题吗?..
注意:它不在后台运行,但确实在页面加载时运行...
感谢先进..
答案 0 :(得分:0)
在命令末尾放置一个&
,告诉shell在后台运行该进程。
$PID = exec("nohup nice -n $Priority $Command 2> /dev/null & echo $! &");
我也问过并回答了一个类似的问题,你可以看一下可以帮助你:How can I run a PHP script in the background after a form is submitted?
答案 1 :(得分:0)
请看这个答案,似乎正是您所寻找的: