在Windows的后台运行PHP“exec()”?

我创build了一个使用psexec调用另一个脚本的脚本,该脚本调用psexec来运行我的命令行程序。

这么多的psexec和其他脚本调用的原因只是为了让我的PHP脚本不必等到这个过程完成才输出到浏览器。

有没有办法可以做到这一点,而不需要使用psexec? 我与psexec有问题,所以我想只是完全从我的程序中删除它。

我正在运行Windows 2008

编辑:我改变了标题,我想这将是一个更准确的标题。 我发现If a program is started with this function, in order for it to continue running in the background, the output of the program must be redirected to a file or another output stream. Failing to do so will cause PHP to hang until the execution of the program ends. If a program is started with this function, in order for it to continue running in the background, the output of the program must be redirected to a file or another output stream. Failing to do so will cause PHP to hang until the execution of the program ends.exec() php.net的页面,但不知道如何做到这一点。

Solutions Collecting From Web of "在Windows的后台运行PHP“exec()”?"

在命令行中包含重定向:

 exec('program.exe > NUL') 

或者你可以修改你的程序显式关闭标准输出,在C这将是

 CloseHandle(GetStdHandle(STD_OUTPUT_HANDLE)); 

有可能(文档没有说)您可能需要重定向/关闭标准输出和标准错误:

 exec('program.exe > NUL 2> NUL') 

要么

 CloseHandle(GetStdHandle(STD_OUTPUT_HANDLE)); CloseHandle(GetStdHandle(STD_ERROR_HANDLE)); 

尝试Windows的“ start ”命令: http : //technet.microsoft.com/en-us/library/cc770297%28WS.10%29.aspx