【发布时间】:2011-01-11 05:35:31
【问题描述】:
我最近创建了一个需要在后台运行的脚本。我使用此代码来运行它...
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
但是还是不行。。是我的设置有问题吗?。
注意:它不会在后台运行,但它肯定会在页面加载时运行...
先谢谢了..
【问题讨论】:
-
请谨慎使用此功能,并清楚记录如何正确使用。如果用户可以控制 $Command 或 $Priority 的值,那么您就有了命令注入漏洞。攻击者将能够以与运行 php 相同的权限在您的 Web 服务器操作系统上执行命令。
标签: php process background