让Python脚本限制为一次只能运行一个
可能重复的问题:
Python:程序的单一实例
我想让一个Python脚本在运行时只能有一个实例,也就是说它一次只能运行一个。如果我运行这个脚本,然后再打开一个新的脚本窗口,但第一个窗口还在运行,那么第二个窗口就会自动退出,不会做任何事情。有没有人知道我该怎么实现这个功能?
2 个回答
0
一个简单的解决办法是使用文件锁。你可以通过使用os.open()来打开一个文件,这里有一个选项可以让你对这个文件进行独占锁定。想了解更多,可以查看这个链接。
1
我之前从来没有写过Python,但这是我刚刚在我的检查点中实现的,目的是为了防止它被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()