Python:进程一直运行的挂起时间量

时间:2009-12-14 09:40:15

标签: python process

我想做这样的事情:

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或者有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

也许您可以查看锁定文件的创建时间。这不能保证是正确的,但在大多数情况下它是正确的(并且错误的后果是最小的)。

答案 1 :(得分:1)

如果由于某种原因你不想使用锁文件的修改时间,你可以把它写在文件中:

pid, start_time = map(int, file(lock_file, "r").read().split())
...
lock.write("%s %d" % (os.getpid(), time.time()))