我想做这样的事情:
try:
pid = int(file(lock_file, "r").read())
print "%s exists with pid: %s" % (lock_file, pid)
if not check_pid(pid):
print "%s not running. Phantom lock file? Continuing anyways" % pid
elif wall_time(pid) > 60 * 5:
print "%s has been running for more than 5 minutes. Killing it" % pid
os.kill(pid)
else:
print "Exiting"
sys.exit()
except IOError:
pass
lock = file(lock_file, "w")
lock.write("%s" % os.getpid())
lock.close()
如何实施wall_time
?我是否必须阅读/proc
或者有更好的方法吗?
答案 0 :(得分:1)
也许您可以查看锁定文件的创建时间。这不能保证是正确的,但在大多数情况下它是正确的(并且错误的后果是最小的)。
答案 1 :(得分:1)
如果由于某种原因你不想使用锁文件的修改时间,你可以把它写在文件中:
pid, start_time = map(int, file(lock_file, "r").read().split())
...
lock.write("%s %d" % (os.getpid(), time.time()))