gpt4 book ai didi

php - 在 Windows 的后台运行 PHP "exec()"?

转载 作者:可可西里 更新时间:2023-11-01 09:46:10 26 4
gpt4 key购买 nike

我创建了一个脚本,该脚本使用 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.在 php.net 的页面上 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));

关于php - 在 Windows 的后台运行 PHP "exec()"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7692263/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com