启动程序的新实例,然后终止旧的程序

时间:2018-09-19 15:02:55

标签: shell

我正在寻找使用VLC自动录制https音频流的方法。流有下降的趋势,因此我需要每小时每小时创建一个新的捕获,但是为了流畅地编辑,我希望每个实例记录65分钟。

我不确定如何编写脚本,以便旧版本在新版本启动5分钟后终止。

我用于捕获的命令是:

vlc https://server.com/live --sout="#duplicate{dst=std{access=file,mux=mp3,dst='/home/ubuntu/test1.mp3'},dst=nodisplay}"

(此外,我想用当前日期时间信息替换“ test1”,但这是另一个线程。)

1 个答案:

答案 0 :(得分:0)

最好退出,而不要取消进程:

--stop-time=3900(65 * 60)

  

停止时间
  流将在此位置停止(以秒为单位)。

https://wiki.videolan.org/VLC_command-line_help/

其余的可以通过shell循环来完成:

while : ; do 
    vlc --stop-time=3900 --play-and-exit https://server.com/live --sout="#duplicate{dst=std{access=file,mux=mp3,dst='/home/ubuntu/test1.mp3'},dst=nodisplay}" &
    sleep 3600
done

while do : ; vlc &; sleep 3600 done在后​​台启动一个实例,然后等待3600秒,然后永远启动下一个实例(直到您按 Ctrl + c 为止)。

另一种选择是使用crontab条目,该条目每隔一小时才启动一个新实例:
crontab -e

0 * * * * vlc --stop-time=3900 --play-and-exit https://server.com/live --sout="#duplicate{dst=std{access=file,mux=mp3,dst='/home/ubuntu/test1.mp3'},dst=nodisplay}" 1>>~/.vlc.dump.log 2>&1

编辑:@DaveZachritz退出时,它也需要--play-and-exit