python - 如何从php执行shell命令并且不等待WINDOWS上的输出
问题描述
我有一个面具检测 python 程序。每当我们运行它时,它都会持续运行并不断检测(无休止的程序)。我已经制作了一个门户网站,以使用 php 在按钮单击事件上启动这个 python 程序。现在的问题是,当我通过 shell_exec() 启动这个程序时,它就会启动。但是 php 等待程序完成。直到程序运行时(从 shell_exec() ),php 只是冻结,甚至不加载任何其他页面。
那么如何从 shell_exec() 运行 cmd 命令而不是等待它完成执行呢?
代码
$command = escapeshellcmd("start cmd /c python mask_detector.py " );
$output = shell_exec($command);
解决方案
我在这个博客https://subinsb.com/how-to-execute-command-without-waiting-for-it-to-finish-in-php/上找到了我的问题的简单解决方案
感谢这位天才
这里给出的解决方案是这个函数
function <span style="color: red;">bgExec</span>($cmd) {
if(substr(php_uname(), 0, 7) == "Windows"){
pclose(popen("start /B ". $cmd, "r"));
}else {
exec($cmd . " > /dev/null &");
}
}
我尝试将我的标准输出重定向到 null,但它在 Windows 平台上对我不起作用。上面的函数使用 popen() 和 pclose() 函数。这样我的工作就完成了。
pclose(popen("start cmd /c python demo.py", "r"));
推荐阅读
- ubuntu - 使用 Gnome Ubuntu 安装和运行 XRDP(远程桌面)时出错:我遇到黑屏
- android - 每个应用每 15 分钟一次 setAndAllowWhileIdle() 和 setExactAndAllowWhileIdle() 一次。每分钟报警怎么办
- php - 从 JSON 响应中的键中获取值
- excel - 使用 IFNA() 函数导出 Google 表格会给出#name?Excel中的错误
- linux - 尽管 CONFIG_COMPAT 在 aarch64 上运行 32 位 ARM 二进制文件仍无法正常工作
- git - 在单个主机上使用多个密钥时 SSH 使用错误的密钥
- ios - 为什么我在使用该值时得到一个 nil 值,但是当我打印它时它显示为 none nil?
- reactjs - 反应,使用道具将数据从孩子传递给父母
- php - 我如何在 laravel eloquent 中编写这个 sql
- java - 谷歌地图在Android的标签片段上显示为灰色