我的问题可能有点复杂。
这是我的场景:
我想使用 php 启动 mjpg 流媒体。我的 php 脚本是:
<?php
$output = shell_exec("sh /var/www/html/shellstart.sh");
echo "<pre>$output</pre>";
header("Location: ../index.php");
?>
Run Code Online (Sandbox Code Playgroud)
它在启动脚本时工作正常。问题是脚本
shellstart.sh:
LD_LIBRARY_PATH=/opt/mjpg-streamer/mjpg-streamer-experimental/ /opt/mjpg-streamer/mjpg-streamer-experime $
Run Code Online (Sandbox Code Playgroud)
启动一个进程并且 header() 函数永远不会被调用,因为它永远不会离开脚本。所以我正在寻找一种方法来启动脚本,让它保持运行但返回到 php 脚本并调用 header() 函数。
我已经试过了
trap "exit" SIGINT
Run Code Online (Sandbox Code Playgroud)
和
nohup LD_LIBRARY_PATH=/opt/mjpg-streamer/mjpg-streamer-experimental/ /opt/mjpg-streamer/mjpg-streamer-experime$
Run Code Online (Sandbox Code Playgroud)
我也试过 $ disown。但是当使用 nohup 或 $ disown 时,脚本甚至不会启动该过程。
我感谢任何帮助!提前致谢。
您想尝试以下操作:
$pid = exec("sh /var/www/html/shellstart.sh> /dev/null 2>&1 & echo $!; ", $output);
Run Code Online (Sandbox Code Playgroud)
这将使脚本在后台启动并返回脚本的 PID。
| 归档时间: |
|
| 查看次数: |
1328 次 |
| 最近记录: |