【发布时间】:2015-03-10 18:10:09
【问题描述】:
我正在尝试使用 exec 函数在后台运行两个 bash 命令。
$action[] = "/path/script1 par1 > log1 2>&1";
...
$action[] = "/path/script2 par2 > log2 2>&1";
...
$cmd = "( " .implode(' && ',$action). " ) &";
exec($cmd);
script1 和 script2 是 bash 脚本。
脚本已正确执行,其输出已正确保存在其日志文件中,但我的应用程序挂起。好像最后一个 & 不起作用。
我已经试过了:
$cmd = "bash -c \"" .implode(' && ',$action). "\" &";
如果我运行单个命令,它会在后台运行。
我捕获了 $cmd,如果我运行:
( /path/script1 par1 > log1 2>&1 && /path/script2 par2 > log2 2>&1 ) &
从命令行,它在后台运行。
我在 Red Hat Enterprise Linux AS 第 3 版(Taroon 更新 2)上使用 Apache/2.0.52 和 PHP/5.2.0
【问题讨论】: