因此,我需要通过命令行(使用exec
)运行后台进程,同时还要将参数传递给已执行的 PHP 脚本。
在继续之前,我将展示我的脚本,以便更好地了解正在发生的事情:
var_dump($argv);
exit;
要获取要传递的参数很简单,所需要做的就是:
$ php -q test.php foo bar
这将按预期输出:
array(2){
[0] => string(11) "test.php"
[1] => string(3) "foo"
[2] => string(3) "bar"
}
但是,为了异步运行脚本,我需要使用以下命令:
$ php -q test.php foo bar >/dev/null 2>/dev/null &
但是由于某种原因,每次我执行命令时,它都会输出一个与此类似的任意数字:
[1] 79401
我一直在寻找解决方案,但手头上找不到任何东西。
感谢所有帮助。
答案 0 :(得分:2)
如danlor所说,它是PHP脚本的进程ID。 在命令末尾使用“&”表示外壳程序应在后台运行该命令,因此外壳程序会告诉您该进程的PID。 您还可以使用“> / dev / null”和“ 2> / dev / null”来抑制任何输出到stdout和stderr的内容。
答案 1 :(得分:0)
您可以将命令发送到后台,然后将输出发送到/ dev / null
/ bin / bash -c“ php -q test.php foo bar&” 2>&1> / dev / null