可能重複:
Quick-and-dirty way to ensure only one instance of a shell script is running at a time殼牌片段,以確保只有一個實例shell腳本在任何特定時間運行
在以前的工作,我們曾經有過一個高度精煉的bash函數稱爲run-only-once,我們可以將它寫入任何長時間運行的shell腳本中,然後在腳本開始時調用它,它將檢查腳本是否已經作爲另一個進程運行,如果是這樣,請退出通知標準輸出。
有沒有人有這樣的功能/片段,他們可以分享?
我們舊的函數(我不再有)會在/ var/run中檢查PID文件(以scriptname。$$格式),然後使用然後退出或繼續。在存在PID文件的情況下,它將執行一些檢查以確保該過程仍處於活動狀態。它還有幾個選項來控制是否輸出通知。
從內存中,我們的功能只在bash中工作。/bin/sh版本的獎勵積分。
好的答案,我可能會使用它,或者將這個問題與問題185451的答案組合起來,Nik指向的是(即,我將使用陷阱並殺死-0)。 – 2009-06-07 02:28:51