使用 Supervisor 启动和停止管道进程

使用 Supervisor 启动和停止管道进程

我遇到过一种情况,我将 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 '你的一行代码' 我觉得这个可行

相关内容