一尘不染

使用php在后台执行shell脚本

linux

我需要执行一个shell脚本。难得的是我想这样做

$Command = "nohup cvlc input --sout '#transcode {vcodec=h264,acodec=mp3,samplerate=44100}:std{access=http,mux=ffmpeg{mux=flv},dst=0.0.0.0:8083/".output"}' &";
$str = shell_exec($Command);

我不希望它等待命令完成,我希望它在后台进程中运行。我不想要另一个php线程,因为它将超时,该命令最多可能需要3个小时才能完成。


阅读 740

收藏
2020-06-07

共1个答案

一尘不染

$str = shell_exec($Command.' 2>&1 > out.log');

您需要重定向命令的输出。

如果使用此功能启动程序,则要使其在后台继续运行,必须将程序的输出重定向到文件或其他输出流。否则,PHP会挂起,直到程序执行结束。

http://php.net/manual/zh/function.exec.php

2020-06-07