我正在编写一个应用程序,用于监听和记录mms流;目前,我正在为我的老板制作一个bash脚本的概念证明。为了记录,我想使用mimms:
mimms <mms://url> download_to_file
mimms的输出是:
connecting
<mms://url> <=> download_to_file
1MB / 10 MB (20 kB/s, 00:01:30 remaining)
最后一行是一条状态消息,每秒钟更新一次。
这个问题发生在处理不稳定的网络时。当网络中断时,mimms就会挂起。没有向download_to_file添加任何新的数据(文件大小是恒定的,也不会增加),但是mimms不会退出,甚至在重新建立网络连接时也不会恢复下载。它只是挂起,也不输出新的状态消息行。
当mimms没有输出新行时,我想检测它,杀死mimms,然后继续下载:
mimms -r mms://url download_to_file
但我不知道如何测试这些情况,并将非常感谢关于如何处理这个问题的建议。
发布于 2012-04-18 14:22:35
您可以在后台启动mimms (向命令中添加一个&
),并让脚本在循环中等待,定期检查下载文件的大小。如果mimms仍然在运行,但文件大小没有改变,那么假设mimms挂起并杀死它。
发布于 2012-05-01 14:43:02
我自己想出了一个解决方案,它依赖于mimms的输出,而不是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
https://stackoverflow.com/questions/10218640
复制