让Python脚本限制为一次只能运行一个

2 投票
2 回答
6367 浏览
提问于 2025-04-15 23:27

可能重复的问题:
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()

撰写回答