以下锁定机制用于防止cron
作业并发运行:
#!/bin/bash
echo "Before critical section"
(
flock -e 200
echo "In critical section"
sleep 5
) 200>/tmp/blah.lockfile
echo "After critical section"
当同时运行两个实例时,后者会等到第一个实例完成,然后再运行。这可能会导致等待运行的脚本积压。
如何更改此脚本,以便如果flock
无法获取锁,它会终止脚本?我试过-n
没有成功。