首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在bash中检测挂程序

在bash中检测挂程序
EN

Stack Overflow用户
提问于 2012-04-18 21:56:17
回答 2查看 645关注 0票数 1

我正在编写一个应用程序,用于监听和记录mms流;目前,我正在为我的老板制作一个bash脚本的概念证明。为了记录,我想使用mimms:

代码语言:javascript
代码运行次数:0
运行
复制
mimms <mms://url> download_to_file

mimms的输出是:

代码语言:javascript
代码运行次数:0
运行
复制
connecting
<mms://url> <=> download_to_file
1MB / 10 MB (20 kB/s, 00:01:30 remaining)

最后一行是一条状态消息,每秒钟更新一次。

这个问题发生在处理不稳定的网络时。当网络中断时,mimms就会挂起。没有向download_to_file添加任何新的数据(文件大小是恒定的,也不会增加),但是mimms不会退出,甚至在重新建立网络连接时也不会恢复下载。它只是挂起,也不输出新的状态消息行。

当mimms没有输出新行时,我想检测它,杀死mimms,然后继续下载:

代码语言:javascript
代码运行次数:0
运行
复制
mimms -r mms://url download_to_file

但我不知道如何测试这些情况,并将非常感谢关于如何处理这个问题的建议。

EN

回答 2

Stack Overflow用户

发布于 2012-04-18 22:22:35

您可以在后台启动mimms (向命令中添加一个& ),并让脚本在循环中等待,定期检查下载文件的大小。如果mimms仍然在运行,但文件大小没有改变,那么假设mimms挂起并杀死它。

票数 2
EN

Stack Overflow用户

发布于 2012-05-01 22:43:02

我自己想出了一个解决方案,它依赖于mimms的输出,而不是mimms生成的文件的大小:

  1. 在后台启动程序,将输出从mimms重定向到日志文件
  2. ,定期间隔
  3. 读取该文件的最后一行,如果同一行连续出现两次,则杀死mimms并重新启动
  4. ,重复此操作直到mimms输出“下载完成!”

LAST1="a“LAST2="b”“MSG=”开始下载$PATH1,直到"$LAST1“=”下载完成!“;执行echo $MSG mimms -r $URL "$PATH1”>> log 2>&1 & PID=$!回声$PID直到"$LAST1“= "$LAST2”;做LAST2="$LAST1“睡眠60 LAST1=$(尾-1日志)回显"$LAST1”完成了杀死$PID MSG=“下载不完整”。done

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

https://stackoverflow.com/questions/10218640

复制
相关文章

相似问题

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