1. 编辑用户的定时任务
(1) crontab -e | 若是指定用户 则是 crontab -u root -e
编辑内容:
* * * * * sh /cloud/taks/monitor-task-schedule.sh |
上述即是定时任务: 每分钟执行依次task.sh 脚本
备注:脚本路径必需为绝对路径
2. 编写shell 脚本
具体脚本查看 monitor-task-schedule.sh 文件
我们是在指定的每分钟 8s 12s 30s 55s 开始启动定制任务
#!/bin/bash
## 定时任务启动是每分钟 8s 12s 30s 55s
## 在第一次睡眠时间为7s 4s 18s 25s
PROCESS=DemoTest
for N in 7 4 18 25 ; do
sleep $N
ps -fe|grep $PROCESS |grep -v grep
stat=$?
if [ $stat -ne 0 ]
then
echo "`date -d today +"%Y-%m-%d %T"` 检测到进程$PROCESS已经停止,准备执行" >> /cloud/taks/task.log
source /etc/profile; java -cp /cloud/taks/task-demo.jar org.test.DemoTest >> /cloud/taks/task.log 2>&1 &
else
echo "程序已经运行"
fi
echo $stat
done
####
#### 备注说明
#### 1./cloud/taks/task.log 为shell 脚本执行的 日志记录 需要根据项目具体情况调整
#### 2. ps -fe|grep DemoTest |grep -v grep 命令 其中的 DemoTest 为进程执行的执行唯一的名称 默认是main方法的类名
#### 3. /cloud/taks/task.log 执行日志记录 替换
3.测试结果
![](https://i-blog.csdnimg.cn/blog_migrate/9bad37bd6c8c3971c877e66d4550c110.png)