我想提出在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