保持bash脚本运行子进程,直到bash脚本结束

时间:2014-09-17 16:23:25

标签: bash shell ffmpeg

我想保持一个命令运行(在这种情况下是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

0 个答案:

没有答案