我有一种情况,我将ffmpeg的输出传递给一个PHP脚本进行一些处理。 我可能会有一些这样的进程在任何给定的时间运行,我想开始和停止他们,我可能会使用Supervisor。
然而,我遇到了一个问题,我可以开始一个新的过程,但我无法成功阻止它。 我试图执行以下命令:
ffmpeg -i http://mystream.com -v 0 -f s16le -acodec pcm_s16le - | php process.php
要使“pipe道”工作,我使用以下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似乎已经被杀死了。
主pipe开始和停止pipe道命令的正确方法是什么?
%sh -c'你的一行'我认为这是有效的