У меня есть ситуация, когда я передаю вывод ffmpeg в сценарий PHP для некоторой обработки. У меня могло быть несколько из этих процессов, запущенных в любой момент времени, и я решил запустить и остановить их, я мог бы использовать Supervisor.
Однако я сталкиваюсь с проблемой, когда я могу запустить новый процесс, но не могу его успешно остановить. Я пытаюсь выполнить следующую команду:
ffmpeg -i http://mystream.com -v 0 -f s16le -acodec pcm_s16le - | php process.php
Чтобы «труба» заработала, я использую следующее для command
в супервайзере:
[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?
% sh -c 'your one-liner' Я думаю, это работает