子进程与主进程bash shell php分开

时间:2012-02-14 20:57:41

标签: php linux bash shell process

我正在从我的PHP代码中调用sell脚本 同

foreach ($some_array) {
     shell_exec(nohup $code); 
}

如上所述

我希望所有shell_exec调用独立于邮件进程工作,这是我们称之为shell脚本的php执行

但它没有正常工作,因为我预计所有shell_executions会在上一次完成之后立即启动

那么我怎样才能将这个shell_exec调用作为独立的子进程,让他们不要彼此等待completation

提前致谢

3 个答案:

答案 0 :(得分:0)

添加'&'到你想要执行的命令的末尾,所以它在后台工作。

答案 1 :(得分:0)

对于一系列命令,将它们括在括号内,然后附加&符号,但一定要重定向stdout,stderr在某处,否则你的脚本会挂起等待,例如:

<?php

exec('( sleep 10; echo "finished" | mail ian@example.com ) &> /dev/null &');

?>

请参阅http://us.php.net/manual/en/function.exec.php

答案 2 :(得分:-1)

将它们发送到后台

shell_exec("nohup somecommand &");
                              ^---run job in background