PHP 如何在后台 运行 多 bash 命令
PHP how to run multi bash command in background
为了运行一个后台命令,效果很好。
$cmd = 'ffmpeg -re -i ./97.mp4 -vcodec copy -acodec copy -f flv -y rtmp://example.com/c/190843?auth_key=7e2682b5 > output 2>&1 </dev/null &';
exec($cmd, $output, $return_var);
然后我需要在ffmpeg
命令之前睡一段时间。我指的是直接在 bash 控制台中运行良好的 How do I run multiple background commands in bash in a single line?。
虽然在下面的 PHP 脚本中不起作用,但当 bash 命令完成时,它将 return 运行ning.
$cmd = '(sleep 5; ffmpeg -re -i ./97.mp4 -vcodec copy -acodec copy -f flv -y rtmp://example.com/c/190843?auth_key=7e2682b5 > output 2>&1 </dev/null) &';
exec($cmd, $output, $return_var);
我认为您还需要处理 sleep
的 stdout/stderr。
( sleep 5 > /dev/null 2>&1; ...; ) &
或者您可以将重定向放在 ( ... )
:
之后
( sleep 5; ffmpeg ...no redir here...; ) < /dev/null > /dev/null 2>&1 &
从 bash 命令到 运行 多个命令;使用 &&.
连接
例如:
sleep 5 && echo hello && sleep 2 && echo world
这个技巧在 cron 任务中特别有用,可以在同一分钟内对多个项目进行排序,因为在启动命令之前可以使用不同的睡眠值作为偏移量。
为了运行一个后台命令,效果很好。
$cmd = 'ffmpeg -re -i ./97.mp4 -vcodec copy -acodec copy -f flv -y rtmp://example.com/c/190843?auth_key=7e2682b5 > output 2>&1 </dev/null &';
exec($cmd, $output, $return_var);
然后我需要在ffmpeg
命令之前睡一段时间。我指的是直接在 bash 控制台中运行良好的 How do I run multiple background commands in bash in a single line?。
虽然在下面的 PHP 脚本中不起作用,但当 bash 命令完成时,它将 return 运行ning.
$cmd = '(sleep 5; ffmpeg -re -i ./97.mp4 -vcodec copy -acodec copy -f flv -y rtmp://example.com/c/190843?auth_key=7e2682b5 > output 2>&1 </dev/null) &';
exec($cmd, $output, $return_var);
我认为您还需要处理 sleep
的 stdout/stderr。
( sleep 5 > /dev/null 2>&1; ...; ) &
或者您可以将重定向放在 ( ... )
:
( sleep 5; ffmpeg ...no redir here...; ) < /dev/null > /dev/null 2>&1 &
从 bash 命令到 运行 多个命令;使用 &&.
连接例如:
sleep 5 && echo hello && sleep 2 && echo world
这个技巧在 cron 任务中特别有用,可以在同一分钟内对多个项目进行排序,因为在启动命令之前可以使用不同的睡眠值作为偏移量。