首页
注册
登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请
登录
广告
V2EX
›
问与答
如何保证 crontab 中的定时命令,同时只有一个进程在执行
ddllzz
·
2021-06-21 12:30:13 +08:00
· 1260 次点击
这是一个创建于 1381 天前的主题,其中的信息可能已经有所发展或是发生改变。
例如每分钟执行一次,如果执行时发现之前的任务还在执行中,那么自动跳过这一次。
执行
crontab
定时
命令
6 条回复
•
2021-06-21 13:23:52 +08:00
1
Tink
2021-06-21 12:31:42 +08:00
1
这个工作不应该在 crontab 里完成,而应该在任务或者脚本中完成
2
ddllzz
OP
2021-06-21 12:54:05 +08:00
@
Tink
#1 在任务中通过什么可靠的方式来判断呢
3
beyond_st
2021-06-21 12:55:15 +08:00
1
lock file
4
Tink
2021-06-21 13:02:22 +08:00 via Android
2
@
ddllzz
pidfile 就行
5
cnxobo
2021-06-21 13:08:16 +08:00
2
* * * * * (flock -xn ./test.lock -c "sh /root/
test.sh
")
-n 为非阻塞模式
-x 获取一个排它锁
6
Vegetable
2021-06-21 13:23:52 +08:00
1
crontab 这么实现挺麻烦的。这种我会选择 systemd 的 timer 实现。上次执行完成后+60s 执行下一次。
关于
·
帮助文档
·
博客
·
API
·
FAQ
·
实用小工具
·
981 人在线
最高记录 6679
·
Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 25ms ·
UTC 20:50
·
PVG 04:50
·
LAX 13:50
·
JFK 16:50
Developed with
CodeLauncher
♥ Do have faith in what you're doing.