检查程序是否以编程方式运行

时间:2016-06-07 12:07:37

标签: python windows process

我想知道如何检查程序是否正在使用python运行,如果没有运行它。我有两个python脚本,一个是GUI,它监视另一个脚本。所以基本上如果第二个脚本由于某种原因崩溃我希望它重新开始。

n.b。我在Windows上使用python 3.4.2

1 个答案:

答案 0 :(得分:14)

模块psutil可以帮到你。列出所有流程运行用途:

import psutil

print(psutil.pids()) # Print all pids

要访问流程信息,请使用:

p = psutil.Process(1245)  # The pid of desired process
print(p.name()) # If the name is "python.exe" is called by python
print(p.cmdline()) # Is the command line this process has been called with

如果你在for上使用psutil.pids(),你可以验证所有这个进程是否使用python,如:

for pid in psutil.pids():
    p = psutil.Process(pid)
    if p.name() == "python.exe":
        print("Called By Python:"+ str(p.cmdline())

psutil的文档可在:https://pypi.python.org/pypi/psutil

上找到

编辑1

假设脚本名称是Pinger.py,您可以使用此功能

def verification():
    for pid in psutil.pids():
        p = psutil.Process(pid)
        if p.name() == "python.exe" and len(p.cmdline()) > 1 and "Pinger.py" in p.cmdline()[1]:
            print ("running")