Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php后台运行C exec_Php_C_Raspberry Pi_Exec_Background Process - Fatal编程技术网

在php后台运行C exec

在php后台运行C exec,php,c,raspberry-pi,exec,background-process,Php,C,Raspberry Pi,Exec,Background Process,我已经搜索并找到了一些关于我的问题的建议,但几乎所有的建议都是执行php文件,所以我不知道这是否与我的问题不起作用有关 我的目标是在不完成脚本的情况下完全加载我的网页,这需要花费x个时间,但这行代码无法完成。我有什么遗漏吗?我在很多地方都看到了这个答案,似乎对他们有用 <?php exec("sudo ./EscalonVel 50 2 100 10 20 &> /dev/null &"); echo "Hello"; ?> 如果必须在页面上显示用C脚本计算

我已经搜索并找到了一些关于我的问题的建议,但几乎所有的建议都是执行php文件,所以我不知道这是否与我的问题不起作用有关

我的目标是在不完成脚本的情况下完全加载我的网页,这需要花费x个时间,但这行代码无法完成。我有什么遗漏吗?我在很多地方都看到了这个答案,似乎对他们有用

<?php

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

如果必须在页面上显示用C脚本计算的数据,那么“某人”必须等到它完成后才能显示出来。如果数据直接来自已执行的命令(执行的输出/标准输出),则不能使用
&
对命令进行后台处理:输出可能在调度请求后出现,并且进程后台处理会将其输出与实际执行断开。因此,您有两种选择:

  • 完整显示页面“模板”,并准备好接受HTML末尾的内容(次优但可能)
  • 执行2请求页面:第一个页面显示模板(完整页面),第二个页面(AJAX)使用命令执行中的数据填充模板。根据编写方式的不同,AJAX可以执行多个请求,直到命令终止,如果脚本运行时间超过20秒,这是最好的。然后,您将需要某种进程检查和一些后端来保存(通过命令)和查看(通过AJAX请求)数据,作为文件或数据库

  • 希望有帮助

    尝试
    gpio写入28 0&
    。虽然我不明白你为什么要这么做!我甚至试着对它进行评论,没有luckIt认为您实现了错误的解决方案。脚本做什么?脚本进行一系列计算并将数据插入数据库,目标是能够在页面中绘制这些数据,但为此,我需要首先在后台运行它。sudoers文件中的这个命令是什么?或者是
    sudo
    向您询问密码?为什么
    sudo
    ,这似乎也不对。你知道吗,你可以编写一个函数并从中调用它,或者从一个apache处理程序中调用它。thx,可能没有详细解释我自己,后台过程是在mysql数据库中插入一些行,所以我的方法是调用脚本,然后开始用数据库中的数据刷新页面中的数据。然后,您需要执行AJAX调用来检查流程是否已完成。根据进程内执行时间的不同,这些调用可能距离下一个调用10秒,也可能是10分钟。如果进程尚未完成,则在X秒内调用另一个AJAX请求(使用
    setTimeout
    )。如果有,则提供数据。我不知道这是什么数据。它可能适合JSON、JavaScript或普通HTML。这取决于你和你的需要。没有脚本这样的东西。