Назад | Перейти на главную страницу

Запуск и остановка конвейерных процессов с помощью Supervisor

У меня есть ситуация, когда я передаю вывод 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' Я думаю, это работает