用於防止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
沒有成功。
如果發生這種情況可能會失敗,那將很好。如果'$ 0'包含空格,我懷疑它會失敗,如果'$ 0'沒有包含正在運行的腳本的路徑(例如腳本在其他地方,但在PATH上),它將失敗。 – joeytwiddle
$ 0應該仍然有路徑,如果它在$ PATH。不起作用的一種情況是在短劃線之下。 – steveayre