【问题标题】:Start shell script using php and exit it without stopping the process使用 php 启动 shell 脚本并在不停止进程的情况下退出它
【发布时间】:2016-02-19 23:06:26
【问题描述】:

我的问题可能有点复杂。

这是我的场景:

我想使用 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 时,脚本甚至不会启动进程。

感谢您的帮助!提前致谢。

【问题讨论】:

标签: php shell


【解决方案1】:

您想尝试以下方法:

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

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

【讨论】:

  • 这就像一个魅力!我将研究这是如何工作的。非常感谢!
猜你喜欢
  • 2012-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-31
  • 1970-01-01
  • 2016-05-27
相关资源
最近更新 更多