一台电脑上同时只运行一个Python程序

一台电脑上同时只运行一个Python程序

要实现在一台电脑上同时只运行一个Python程序的功能,可以使用文件锁来控制程序的执行。下面是一个示例代码:

import fcntl
import os

# 定义文件锁的路径
lock_file = "/tmp/program.lock"

def run_program():
    # 获取文件锁
    lock = open(lock_file, 'w')
    try:
        fcntl.lockf(lock, fcntl.LOCK_EX | fcntl.LOCK_NB)
        # 执行程序的代码
        print("程序开始执行")
        # 用于模拟程序执行的时间
        os.system("sleep 10")
        print("程序执行完毕")
    except IOError:
        print("程序已经在运行中")
    finally:
        # 释放文件锁
        fcntl.lockf(lock, fcntl.LOCK_UN)
        lock.close()

if __name__ == "__main__":
    run_program()

在这个示例中,我们使用了fcntl模块来获取文件锁。首先定义了一个文件锁的路径,然后在run_program函数中获取文件锁。如果能够成功获取到文件锁,则执行程序的代码;否则,输出提示信息表示程序已经在运行中。在程序执行完毕后,释放文件锁。

这样,无论有多少个实例同时运行这个程序,只有第一个能够成功获取到文件锁,其他的实例都会被阻塞,直到文件锁被释放。

猜你喜欢

转载自blog.csdn.net/sinat_35773915/article/details/132081461