web-dev-qa-db-ja.com

プログラムがプログラムで実行されているかどうかを確認する

pythonを使用してプログラムが実行されているかどうかを確認し、実行されていない場合、2つのpythonスクリプトがあります。基本的に、何らかの理由で2番目のスクリプトがクラッシュした場合、最初からやり直したいと思います。

n.b. Windowsでpython 3.4.2を使用しています。

8
Sande

モジュール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")
_
14
user6320679