在Linux服务的维护中有时需要经常检测后台进程是否运行正常,此时如果用crontab就不太容易实现了,因为crontab的检测时长分别为 分钟 小时 月 日 周
最短周期是一分钟,如果想写一个低于一分钟的计划任务就变得有点麻烦了
此时我们可以借助sleep来实现这种需求
关于sleep的具体应用感兴趣的朋友可以man一下,在这里就不在复制黏贴了,贴上一个小脚本
#!/bin/bash
declare a=$(ps -ef | grep "monitor" | grep -v "grep")
for i in `seq 6`;do
if [ "$a" ];then echo "monitor was already started">/dev/null
else echo "cdrmonitor restart at `date "+%Y-%m-%d %H:%M:%S"`" >>/home/tomcat/app/log;cd
/home/tomcat/app/monitor;nohup java -jar monitor-1.1.1.jar > /dev/null 2>&1 &
fi &sleep 10;
done