php - 使用 php 启动 shell 脚本并退出它而不停止进程

标签 php shell

我的问题可能有点复杂。

这是我的场景:

我想使用 php 启动 mjpg 流媒体。我的 php 脚本是:

<?php 
$output = shell_exec("sh /var/www/html/shellstart.sh");
echo "<pre>$output</pre>";
header("Location: ../index.php");
?>

它在启动脚本时工作正常。问题是脚本

shellstart.sh:
LD_LIBRARY_PATH=/opt/mjpg-streamer/mjpg-streamer-experimental/ /opt/mjpg-streamer/mjpg-streamer-experime $

启动一个进程并且 header() 函数永远不会被调用,因为它永远不会离开脚本。所以我正在寻找一种方法来启动脚本,让它保持运行但返回到 php 脚本并调用 header() 函数。

我已经试过了
trap "exit" SIGINT


nohup LD_LIBRARY_PATH=/opt/mjpg-streamer/mjpg-streamer-experimental/ /opt/mjpg-streamer/mjpg-streamer-experime$

我也试过 $ disown。但是当使用 nohup 或 $ disown 时,脚本甚至不会启动该过程。

我感谢任何帮助!提前致谢。

最佳答案

您想尝试以下操作:

$pid = exec("sh /var/www/html/shellstart.sh> /dev/null 2>&1 & echo $!; ", $output); 

这将使脚本在后台启动并返回脚本的 PID。

关于php - 使用 php 启动 shell 脚本并退出它而不停止进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35516704/

相关文章:

php - 使用 PHP 将变量添加到 mysql select 语句会破坏该语句

php - 快速调试和有效修复大图像文件上传失败的最佳方法

php - 在 laravel 中修改返回路由

linux - 回答终端查询并自动登录ssh

shell - Unix : saving a sed command in a variable, 回显它,然后执行它

linux - inotify兼容的shell脚本监控某个目录的shell

php - 只允许从特定页面访问链接?

javascript - 如何使用ajax和php检查登录 session 状态?

linux - unix linux shellscript 编程打印包含多个单词的输入参数

linux - 用于检查 ubuntu 版本然后复制文件的 shell 脚本