| 用途 | 命令/脚本互斥(防重叠执行) |
|---|---|
| 语法 | flock [-n] 锁文件 命令 | flock -n 数字fd |
| 行为 | 默认排队等锁;-n 拿不到立即失败(退出码非 0),-w 限时等待 |
常用示例
常用示例
flock -n /var/lock/backup.lock -c '/usr/local/bin/backup.sh'
flock -w 30 /var/lock/sync.lock /usr/local/bin/sync.sh # 最多等 30 秒
# cron 防重叠:
*/10 * * * * /usr/bin/flock -n /var/lock/report.lock /usr/local/bin/report.sh
# fd 形式(脚本内分段持锁):
exec 9>/var/lock/app.lock
flock -n 9 || { echo '已有实例在跑'; exit 1; }锁由内核 flock 调用维护、不在文件内容里:进程崩溃锁自动消失,不会有「死锁文件」残留。