LINUX.ORG.RU
решено ФорумAdmin

monit - запуск программы (ffmpeg) в фоне

 , ,


0

1

Привет!

Может сталкивался кто-то с такой ситуацией:

запускаю ffmpeg так (в одну строку, перенос для удобства чтения):

/bin/ffmpeg -loglevel verbose -re -fix_sub_duration -i 'тут ссылка на поток'  
-c:a copy 
-c:v copy 
-c:s copy 
-metadata:s:s:0 language=rus
 -f mpegts 'udp://y.y.y.y:zzzz?localaddr=x.x.x.x&pkt_size=1316&ttl=32&buffer_size=1000000&bitrate=4500000'
 > /dev/null 2>&1 < /dev/null &. 

Всё ок, ffmpeg в фоне запускается, работает, запуск возвращает PID в ответ.

Переношу в конфиг monit в таком же виде (таймаут в конце на всякий случай):

check process ffmpeg
matching "ffmpeg"
start program = "/bin/ffmpeg -loglevel verbose -re -fix_sub_duration -i 'тут ссылка на поток' 
-c:a copy 
-c:v copy 
-c:s copy 
-metadata:s:s:0 language=rus 
-f mpegts 'udp://y.y.y.y:zzzz?localaddr=x.x.x.x&pkt_size=1316&ttl=32&buffer_size=1000000&bitrate=4500000'
 > /dev/null 2>&1 < /dev/null & " with timeout 20 seconds

Стартую monit, процесс ffmprg мониторится, всё ок.

Если завершить ffmpeg, monit это видит, пытается стартануть ffmpeg но в monit status - Execution failed | Does not exist. Есть какое-то решение средствами самого monit, без внешних скриптов?

25 января 2021 г.
Ответ на: комментарий от badtrips

Для истории - сделал .sh, в котором:

#!/bin/sh

# Команда для запуска ffmpeg
start=`nohup ffmpeg -loglevel verbose -re  \
-fix_sub_duration \
-i 'тут ссылка на поток' \
-c:a copy \
-c:v copy \
-c:s copy \
-metadata:s:s:0 language=rus \
-f mpegts \
'udp://y.y.y.y:zzzz?localaddr=x.x.x.x&pkt_size=1316&ttl=32&buffer_size=1000000&bitrate=4500000' > /dev/null 2>&1&  `
$start

и в конфиге самого monit:

check process ffmpeg
matching "ffmpeg"
start program = "/bin/sh -c '/root/channel/run.sh'" with timeout 20 seconds
stop program = "/usr/bin/kill -9 ffmpeg"
badtrips
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.