flock防止crontab重复执行脚本

经常会有crontab进程会执行完,又起个进程,造成错误。
使用linux flock 文件锁实现任务锁定,解决这个问题

flock 
flock (util-linux-ng 2.17.2)
Usage: flock [-sxun][-w #] fd#
       flock [-sxon][-w #] file [-c] command...
       flock [-sxon][-w #] directory [-c] command...
 -s, --shared:    获得一个共享锁  
 -x, --exclusive: 获得一个独占锁  
 -u, --unlock:    移除一个锁,通常是不需要的,脚本执行完会自动丢弃锁  
 -n, --nonblock:  如果没有立即获得锁,直接失败而不是等待  
 -w, --timeout:   如果没有立即获得锁,等待指定时间  
 -o, --close:     在运行命令前关闭文件的描述符号。用于如果命令产生子进程时会不受锁的管控  
 -c, --command:   在shell中运行一个单独的命令  
 -h, --help       显示帮助  
 -V, --version:   显示版本  

文件锁使用独占锁,非阻塞模式 如果锁定则失败不等待。参数为-xn

* * * * * flock -xn /tmp/run.lock -c 'php /home/run.php >> /home/run.log'  

阻塞模式

* * * * * flock -x /tmp/run.lock -c 'php /home/run.php >> /home/run.log'  
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值