如何在Linux上的Python中通过锁定来保护对远程文件的访问?

时间:2019-07-18 18:44:51

标签: python network-drive filelock

我在Linux机器上有一个网络驱动器,我试图在两台单独的Linux机器上运行两个进程,以使用排他锁访问该网络驱动器上的文件。我正在使用Python的文件锁库来获取锁,但是当我启动这两个进程时,它们并不仅会访问文件,而是同时访问文件。

令人惊讶的是,当我使用两台Windows机器和相同的网络驱动器执行此模拟时,一切正常。第一个进程访问文件,而另一个进程等待,依此类推。另一方面,对于Linux,这不起作用。仅当我在同一台Linux机器上运行两个进程时,它们才会使用排他锁访问文件。

共享驱动器也在Linux上。

这是我的代码:

import sys
from time import sleep
from filelock import FileLock

for i in range(5):
    with FileLock("/usr/share/my_file"):
        print("This is process {}.".format(sys.argv[1]))
        sleep(2)
        print("Bye.")

0 个答案:

没有答案