我想提出在Python简单的锁定机制,而不必依靠现有的库锁定(即fcntl
和可能其他人)如何在Python中获取手动锁机制的进程PID?
我已经有一个小的存根,但搜索了一下后,我不能” t找到一个很好的答案,就如何手动创建锁定文件并将过程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
文件系统,但对于这样一个简单的任务似乎有点太多了。
谢谢。
'open(lock,'w')。write(os.getpid())' – tMC 2012-04-18 19:21:43
完美答案thanks,guess我不需要打扰/ proc毕竟... – 2012-04-18 19:24:35
只是为您的信息,如果你需要在proc中询问一个进程,你可以用'/ proc/self'来完成。 '/ proc/self'永远是调用进程的符号链接。然而,只是收集PID,这是过度杀伤。 – tMC 2012-04-18 19:28:35