Linux上定时任务发布及锁定(2)
来源:互联网 发布:培训4个月ui还是java好 编辑:程序博客网 时间:2024/06/06 11:44
一,发布定时任务
1.发布定时任务时,有些任务执行时间很长在此期间,你希望在去启动一个相同的进程,就需要去加锁,怎么加锁呢,例如:
我要每天晚上十点启动一个任务,在etc/crontab中添加如下命令:
00 22 * * * root /usr/bin/flock -xn /etc/cron.sharp/Diff.lock -c '/etc/cron.sharp/Diff.sh'
a.Diff.lock文件内容可以为空
b.Diff.sh文件内容如下
#!/bin/sh
cd /data/sqlview
java -Dfile.encoding=UTF-8 -classpath .:/data/sqlview/lib/sqljdbc4.jar:/data/sqlview/lib/ant-1.6.jar:/data/sqlview/lib/commons-logging-1.1.3.jar:/data/sqlview/lib/log4j-1.2.15.jar:/data/sqlview/lib/ibatis-2.3.0.677.jar:/data/sqlview/lib/mail-1.4.jar:/data/sqlview/lib/commons-net-3.3.jar:/data/sqlview/bin jp.co.crm.batch.DaliyBatch 0 2
2.在制定的 /data目录下放一个sqlview项目就可以了,晚上十点就会去跑该项目的jp.co.crm.batch.DaliyBatch的main函数,并传入两个参数0,2
二.定时任务被锁定,如下所示
[root@CentosBATCH cron.sharp]# ps aux|grep Diff
root 26887 0.0 0.0 103316 840 pts/1 S+ 11:58 0:00 grep Diff
root 32246 0.0 0.0 100900 216 ? Ss Nov09 0:00 /usr/bin/flock -xn /etc/cron.sharp/Diff.lock -c /etc/cron.sharp/Diff.sh
root 32253 0.0 0.0 106108 364 ? S Nov09 0:00 /bin/sh /etc/cron.sharp/Diff.sh
flock 用于锁定任务,锁定之后定时任务不在执行.sh文件
因为Diff.sh中执行的文件是DaliyBatch.class,所以查找ps aux|grep Daliy*,如下
[root@CentosBATCH data]# ps aux|grep Dal*
root 2256 0.0 0.0 80956 584 ? S Oct14 0:00 /usr/sbin/sendmail -FCronDaemon -i -odi -oem -oi -t -f root
root 3412 0.0 0.0 103320 868 pts/1 S+ 08:28 0:00 grep Dal*
root 31550 0.0 0.2 1529484 4820 ? Sl Nov12 0:34 java -Dfile.encoding=UTF-8 -classpath .:/data/sqlview/lib/sqljdbc4.jar:/data/sqlview/lib/ant-1.6.jar:/data/sqlview/lib/commons-logging-1.1.3.jar:/data/sqlview/lib/log4j-1.2.15.jar:/data/sqlview/lib/ibatis-2.3.0.677.jar:/data/sqlview/lib/mail-1.4.jar:/data/sqlview/lib/commons-net-3.3.jar:/data/sqlview/bin jp.co.crm.batch.DaliyBatch 0 2
root 31597 0.0 0.0 80956 596 ? S Nov12 0:00 /usr/sbin/sendmail -FCronDaemon -i -odi -oem -oi -t -f root
三.解锁
kill -9 31550
[root@CentosBATCH data]# ps aux|grep Dal*
root 2256 0.0 0.0 80956 584 ? S Oct14 0:00 /usr/sbin/sendmail -FCronDaemon -i -odi -oem -oi -t -f root
root 3419 0.0 0.0 103320 868 pts/1 S+ 08:29 0:00 grep Dal*
[root@CentosBATCH data]# ps aux|grep iff
root 3421 0.0 0.0 103316 844 pts/1 S+ 08:29 0:00 grep iff
You have mail in /var/spool/mail/root
或者如下,但是下面执行后进程31550并不会消失
Ps aux|grep Diff
找到Diff的process id Diff的process id.以下用#####代表
Kill -9 #####
kill -9 32253
kill -9 32246
- Linux上定时任务发布及锁定(2)
- Linux上定时任务发布及锁定(1)
- linux中的定时任务及延时任务
- 在linux上创建定时任务
- linux上crontab定时执行任务
- 网站发布后在IIS上定时执行任务
- 网站发布后在IIS上定时执行任务
- linux debian定时任务及备份
- Linux系统的延时及定时任务
- linux中系统延时及定时任务
- linux初学者-延迟及定时任务篇
- Linux系统的延时及定时任务
- linux中的定时及延时任务
- Linux system 定时及延时任务
- Linux中的定时及延时任务
- Linux中的定时及延时任务
- 171029linux中的延时及定时任务
- linux系统中的定时任务及延时任务
- 软件测试--黑盒测试常用测试分析方法总结
- super关键字和this的区别
- Hello World 实例来介绍如何用 Webpack 设置 React 开发环境
- 为什么微服务实施那么难?如何高效推进微服务架构演进
- es6笔记·····编码风格
- Linux上定时任务发布及锁定(2)
- super关键字
- PHP 随机码的生成
- 多个JDK使用批处理命令切换JDK版本
- struts2的国际资源化文件
- hdu-1059-Dividing(多重背包+二进制优化)
- Vmware虚拟机下三种网络模式配置
- 爬虫系列6下载一个网页(异常处理,用户代理,重试次数)
- 独自闯荡上海,面试总结2