在php中运行并忘记系统调用

gro*_*rtn 2 php system-calls

所以我试图从我的PHP代码执行一些脚本.它位于页面blah.php中

<?php
     // ....
     // just basic web site that allows upload of file...
?>
Run Code Online (Sandbox Code Playgroud)

在里面我使用系统调用

if (system("blah.pl arg1") != 0)
{
   print "error\n";
}
else
{
   print "working on it..you will receive e-mail at completion\n";
}
Run Code Online (Sandbox Code Playgroud)

工作得很好,但它一直等到它完成后才打印出来.我知道我从php调用perl脚本而不是拼写错误.

我怎样才能开始执行程序并让它在后台完成.blah.pl脚本处理电子邮件通知.

任何人?

谢谢,我很感激

Mar*_*arz 10

系统功能文档:

注意:如果使用此功能启动程序,为了使程序继续在后台运行,程序的输出必须重定向到文件或其他输出流.如果不这样做将导致PHP挂起,直到程序执行结束.

只需重定向Perl脚本的输出,PHP就可以运行而无需等待脚本完成.

system("blah.pl arg1 > /dev/null 2>&1 &");
Run Code Online (Sandbox Code Playgroud)