可能重複:
Python: single instance of program製作一個python腳本只能在同一時間運行一次
我希望做一個python腳本是在獨特之處在於它可以一次只能運行一次。例如,如果我運行腳本並第二次打開同一腳本的另一個會話,並且第一個會話仍在運行,那麼第二個會話將會退出並不執行任何操作。任何人都知道我可以如何實現這個?
可能重複:
Python: single instance of program製作一個python腳本只能在同一時間運行一次
我希望做一個python腳本是在獨特之處在於它可以一次只能運行一次。例如,如果我運行腳本並第二次打開同一腳本的另一個會話,並且第一個會話仍在運行,那麼第二個會話將會退出並不執行任何操作。任何人都知道我可以如何實現這個?
一個窮人的解決方案是使用基於文件的鎖。如果您使用os.open()打開文件,則會有一個標誌允許對該文件進行排它鎖定。請參閱this以供參考。
從未寫過之前蟒蛇,但是這是我剛剛在mycheckpoint實施,以防止它被通過的crond啓動了兩次或更多:
import os
import sys
import fcntl
fh=0
def run_once():
global fh
fh=open(os.path.realpath(__file__),'r')
try:
fcntl.flock(fh,fcntl.LOCK_EX|fcntl.LOCK_NB)
except:
os._exit(0)
run_once()
http://stackoverflow.com/questions/380870/ python-single-instance-of-program http://stackoverflow.com/questions/220525/ensuring-a-single-instance-of-an-application-in-linux http://stackoverflow.com/questions/1900979/如何避免 - 程序的多個實例 – 2010-06-02 16:19:56
已經回答[這裏](http://stackoverflow.com/questions/380870/python-single-instance-of-program)。 – RSabet 2010-06-02 16:18:39