首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在脚本中的下午2:00停止/杀死无限循环Bash脚本

在脚本中的下午2:00停止/杀死无限循环Bash脚本
EN

Unix & Linux用户
提问于 2020-09-13 11:09:26
回答 1查看 461关注 0票数 2

帮助!我有一个简单的bash脚本,它应该在14:00“退出”/停止执行,但是它不能工作。如果有任何建议,任何事情,我都会非常感激!事先非常感谢!

代码语言:javascript
复制
#!/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“语句之外,什么都想不出来。

EN

回答 1

Unix & Linux用户

发布于 2020-09-13 19:42:24

我在这里测试了您的脚本,在ffmpeg前面插入了一个"echo“和一个”回显退出.“在退出之前在一个单独的行上,然后交替使用-ge和-le来测试这两个分支,它似乎工作得完美无缺。

我想你需要像这样增强脚本:

代码语言:javascript
复制
#!/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之后执行一个类似于主循环的循环)。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/609221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档