我想保持一个命令运行(在这种情况下是ffmpeg)直到某个时间。
我知道这样做的最好方法是将该命令包装在一个bash脚本中,该脚本将继续检查以确保它正在运行。
如果它在此之前死亡,脚本应该重新启动它。我无法弄清楚这是怎么做到的。似乎保持一个进程运行/重新启动,直到一个术语信号是一个非常常见的任务。
我无法使用crontab条目,因为我必须等到X外部源启动此过程(并最终发送终止信号)。
#!/bin/bash
#launch_ffmpeg()
#{
# ffmpeg -i rtmp://localhost/$1/$2 -c copy -f flv rtmp://localhost/$1/$2 &
# return $!
#}
on_die ()
{
# kill all children
pkill -KILL -P $$
}
trap 'on_die' TERM
# I think this is wrong
while :
do
ffmpeg -i rtmp://localhost/$1/$2 -c copy -f flv rtmp://localhost/$1/$2 &
wait $!
sleep 10
done