1

我想在 Python 中创建一个简单的锁定机制,而不必依赖现有的库进行锁定(即fcntl可能还有其他)

我已经有一个小存根,但是经过一番搜索后,我找不到关于如何手动创建锁定文件并将进程 PID 放入其中的好答案。这是我的存根:

dir_name = "/var/lock/mycompany"
file_name = "myapp.pid"
lock = os.path.join(dir_name, file_name)

if os.path.exists(lock):
    print >> sys.stderr, "already running under %s, exiting..." % lock
    # display process PID contained in the file, not relevant to my question
    sys.exit(ERROR_LOCK)
else:
    # create the file 'lock' and put the process PID inside

如何获取当前进程 PID 并将其放入lock文件中?我考虑过查看/proc文件系统,但对于这样一个简单的任务来说,这似乎有点太多了。

谢谢。

4

3 回答 3

2

http://docs.python.org/library/os.html#os.getpid

于 2012-04-18T19:23:15.547 回答
1

open(lock, 'w').write(os.getpid())

于 2012-04-18T19:26:35.797 回答
0

不要忽略使用 str(os.getpid()) 将 os.getpid() 的结果转换为字符串。write 需要一个字符串参数。

于 2012-04-19T01:20:15.897 回答