日期:2014-05-16  浏览次数:20705 次

Linux秒级间隔的计划任务脚本

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()?{