我创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的页面,但不知道如何做到这一点。
在命令行中包含重定向:
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