帮助!我有一个简单的bash脚本,它应该在14:00“退出”/停止执行,但是它不能工作。如果有任何建议,任何事情,我都会非常感激!事先非常感谢!
#!/bin/bash
while :
do
if [ `date +%H` -ge 14 ]; then
exit
fi
ffmpeg -rtsp_transport tcp -i rtsp://login:password@1.1.1.1:554/11 -metadata title="Live Cam" -vcodec copy -acodec aac -ac 2 -f flv rtmp://a.rtmp.youtube.com/live2/key
sleep 10
done一切正常,但它不会退出下午2:00,因为它是应该的,只是继续运行所有的时钟周围。事实上,我试图让它每天运行10个小时,但是除了从cron作业开始运行,然后在脚本本身中使用"if but“语句之外,什么都想不出来。
发布于 2020-09-13 19:42:24
我在这里测试了您的脚本,在ffmpeg前面插入了一个"echo“和一个”回显退出.“在退出之前在一个单独的行上,然后交替使用-ge和-le来测试这两个分支,它似乎工作得完美无缺。
我想你需要像这样增强脚本:
#!/bin/bash
while :
do
if [ `date +%H` -ge 14 ]; then
exit
fi
ffmpeg -rtsp_transport tcp -i rtsp://login:password@1.1.1.1:554/11 -metadata title="Live Cam" -vcodec copy -acodec aac -ac 2 -f flv rtmp://a.rtmp.youtube.com/live2/key &
pid_of_ffmpeg=$!
sleep 10
kill -9 $pid_of_ffmpeg
done在10秒后毫无怜悯地杀死了芬伯。(当然,您可以更改时间,或者如果您想在%H -gt 14之后杀死它,那么在启动ffmpeg之后执行一个类似于主循环的循环)。
https://unix.stackexchange.com/questions/609221
复制相似问题