我遇到过一种情况,我将 ffmpeg 的输出导入 PHP 脚本进行处理。我可能在任意时间运行几个这样的进程,我想使用 Supervisor 来启动和停止它们。
但是,我遇到了一个问题,我可以启动一个新进程,但无法成功停止它。我正在尝试执行以下命令:
ffmpeg -i http://mystream.com -v 0 -f s16le -acodec pcm_s16le - | php process.php
为了使“管道”工作,我command
在 Supervisor 中使用了以下内容:
[program:process]
command = /bin/bash -c 'exec /usr/bin/ffmpeg -i http://mystream.com -v 0 -f s16le -acodec pcm_s16le - | php /home/me/process.php'
这似乎正在工作并且可以很好地启动整个过程,但是,当我使用以下命令停止该过程时supervisorctl
:
stop process
我看到ps aux
进程ffmpeg
仍在运行。php process.php
不过似乎已经被终止了。
使用 Supervisor 启动和停止管道命令的正确方法是什么?
答案1
% sh -c '你的一行代码' 我觉得这个可行