Mr.*_*ing 3 php linux command background
我在Ubuntu 13.04上使用此代码,
$cmd = "sleep 20 &> /dev/null &";
exec($cmd, $output);
Run Code Online (Sandbox Code Playgroud)
虽然它实际上在那里坐了20秒并且等待:/通常它在使用&向后台发送进程时工作正常,但在这台机器上php不会这样做:/
什么可能导致这个?
尝试
<?PHP
$cmd = '/bin/sleep';
$args = array('20');
$pid=pcntl_fork();
if($pid==0)
{
posix_setsid();
pcntl_exec($cmd,$args,$_ENV);
// child becomes the standalone detached process
}
echo "DONE\n";
Run Code Online (Sandbox Code Playgroud)
我测试了它的工作原理.在这里,您首先分叉php进程,然后完成任务.
或者,如果pcntl模块不可用,请使用:
<?PHP
$cmd = "sleep 20 &> /dev/null &";
exec('/bin/bash -c "' . addslashes($cmd) . '"');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3490 次 |
| 最近记录: |