php - 在php后台运行C exec

标签 php c raspberry-pi exec background-process

我已经搜索并找到了一些针对我的问题的建议,但几乎所有建议都在执行 php 文件,所以我不知道这是否与它不适合我有关。

我的目标是让我的网页完全加载,而无需完成需要 x 时间的脚本,但它不会用这行代码来完成。我缺少什么吗?我在很多地方看到过这个答案,它似乎对他们有用。

<?php

exec("sudo ./EscalonVel 50 2 100 10 20 &> /dev/null &");
echo "Hello";
?>

最佳答案

如果您必须在页面上显示根据 C 脚本计算的数据,那么“某人”必须等到它完成才能将其显示出来。如果数据直接来自执行的命令(执行的输出/标准输出),则无法使用 & 将命令后台化:输出可能会在分派(dispatch)请求后出现,并且进程后台会断开其输出实际执行。所以你有两个选择:

  1. 完整地显示页面"template"并准备好接受 HTML 末尾的内容(虽然不是最理想的,但也是可能的)
  2. 执行 2 个请求页面:第一个显示模板(整页),第二个 (AJAX) 用命令执行的数据填充它。根据您编写的方式,AJAX 可以执行多个请求,直到命令终止,如果脚本运行超过 20 秒,则这是更好的选择。然后,您将需要某种流程检查和一些后端来将数据保存(通过命令)和查看(通过 AJAX 请求)作为文件或数据库。

希望对你有帮助!

关于php - 在php后台运行C exec,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33980359/

相关文章:

c - 从 cmd.exe 运行时如何从 cscope-win32 启动 gvim.exe?

linux - 在 raspbian (arm hf) 上安装 amd_64 或 i386 包

c - Raspberry pi 上的 I2C_SLAVE 和 I2C_RDWR 返回值错误

php - 通过 PHP 添加用户 (useradd) - Ubuntu

php - 在不使用引号的情况下在查询中传递字符串 ''

c++ - double 0.0 是否总是在可移植 C 中准确表示?

C - 变得不工作

arm - busybox 交叉编译到 arm 时出错

php - 使用PHP和MYSQL登录帐户的逻辑?

php - 使用 CSS 和 PHP 回显 Div 可见性?