日期:2014-05-16 浏览次数:20705 次
Linux 秒级间隔的计划任务脚本
?
Linux的 cron 计划任务最短间隔只有一分钟,在一些要求下,需要计划任务脚本以秒级别的间隔运行,比如一些队列处理程序,状态检测程序等等。
?
这个使用shell 的 while,?sleep? 即可实现,实际就是形成一个死循环,反复执行指定的流程。如果要退出这个程序,直接杀死进程即可。但是我见过一些人写的脚本,没有考虑到脚本意外被中断时的恢复问题,或单实例问题(即此任务只能运行一次),经过总结,我整理了本文代码,以供参考,实现的特性:
?
1. 自定义运行间隔
2. ??单实例(只能运行一次,多次运行是无效的)
3. ??信号处理(可接收普通的进程控制信号)
?
second-cron.sh的内容:
?
#!/bin/bash
?
interval=5
single_instance=y
?
pidfile=/var/lock/subsys/`basename?$0`.pid
?
if?[?"$single_instance"?==?"y"?]?;?then
????if?[?-f?$pidfile?]?&&?[?-e?/proc/`cat?$pidfile`?]?;?then
????????exit?1
????fi
fi
?
trap?"rm?-fr?$pidfile?;?exit?0"?1?2?3?15
echo?$$?>?$pidfile
?
function?process()?{