我希望让python脚本独一无二,因为它一次只能运行一次。例如,如果我运行脚本并再次打开同一脚本的另一个会话,并且第一个会话仍在运行,那么第二个会话将退出并且什么都不做。谁知道我怎么能实现这个?
答案 0 :(得分:1)
之前从未编写过python,但这是我刚刚在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()
答案 1 :(得分:0)
一个穷人的解决方案是使用基于文件的锁。如果使用os.open()打开文件,则会有一个标志允许对文件进行独占锁定。请参阅this以供参考。