- 论坛徽章:
- 25
|
回复 20# yexingqi
- #!/bin/bash
- detect(){
- #检测程序运行状态
- while true
- do
- endtime=`date +%s`
- errtime=`date +%F" "%T`
- runtime=$((endtime-starttime))
- swith=`ps -eaf|awk '$2=='"${pid}"''`
- if [ -z "${swith}" ];then
- echo "程序运行结束(运行时间${runtime}秒)."
- break
- else
- #设置程序运行超时时间
- if [ "${runtime}" -lt 10 ];then
- echo "程序运行正常(运行时间${runtime}秒)."
- sleep 1
- continue
- else
- echo "${errtime}:程序运行异常(运行时间${runtime}秒),开始杀掉超时进程(${pid})..."
- kill ${pid}
- echo "进程已杀."
- break
- fi
- fi
- done
- }
- i=1
- #设置程序运行次数
- while [ "${i}" -le 5 ]
- do
- starttime=`date +%s`
- echo "第${i}次运行程序..."
- #用sleep命令模拟运行程序
- sleep 100 &
- echo $! > 1.pid
- pid=`awk '1' 1.pid`
- detect
- ((i++))
- if [ "${i}" -le 5 ];then
- echo "等待30秒,再次运行程序."
- sleep 30
- else
- break
- fi
- done
复制代码 |
|