如何在Linux上使用Python检查进程是否仍在运行?

我发现的唯一好方法是:


import sys

import os


try:

        os.kill(int(sys.argv[1]), 0)

        print "Running"

except:

        print "Not running"

但这可靠吗?它适用于每个流程和每个发行版吗?


呼唤远方
浏览 497回答 3
3回答

汪汪一只猫

毕竟,Mark的答案就是解决之道,这就是/ proc文件系统在那里的原因。对于一些复制/粘贴的东西: >>> import os.path >>> os.path.exists("/proc/0") False >>> os.path.exists("/proc/12") True

慕田峪9158850

在Linux上,您可以在目录/ proc / $ PID中查找有关该进程的信息。实际上,如果目录存在,则该进程正在运行。

慕妹3146593

它可以在任何POSIX系统上运行(尽管/proc正如其他人所建议的那样,查看文件系统会更容易,如果您知道它将存在的话)。但是:os.kill如果您无权发信号通知过程,也可能会失败。您将需要执行以下操作:import sysimport osimport errnotry:    os.kill(int(sys.argv[1]), 0)except OSError, err:    if err.errno == errno.ESRCH:        print "Not running"    elif err.errno == errno.EPERM:        print "No permission to signal this process!"    else:        print "Unknown error"else:    print "Running"
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python