2016-04-13 29 views
0

プロセス名(PIDは不明)を指定すると、プロセスが終了したときをどのように検出できますか(また、プロセス名を指定したPIDをどのように見つけることができますか?また、私はWindowsエクスプローラでこれをやっているので、ユーザがディレクトリを移動するときに、プロセス名がどのように変化するのかを追跡することができます。PYTHONプロセスが終了したときを検出する方法

私はPython 2.7とwindowsを使用しています。パドレイクカニンガムは、ここに書いたように

はあなたに

答えて

1

ありがとう:プロセス名からPIDを取得するために Python: How to get PID by process name?

from subprocess import check_output 
def get_pid(name): 
    return int(check_output(["pidof","-s",name])) 

マットは、ここに書いたように:https://stackoverflow.com/a/6767792/5088142 のステータスを取得するためには、あなたのpsidを使用することができますプロセスを使用してpsudilを使用することができますhttps://github.com/giampaolo/psutil

import psutil 
print psutil.Process(pid).status 

編集:あなたは、次のコードにこれらの二つの部分を組み合わせることができます:

from subprocess import check_output 
import psutil 
def get_pid(name): 
    return int(check_output(["pidof","-s",name])) 
def get_status(name) 
    pid = get_pid(name) 
    print psutil.Process(pid).status 
+0

が、そのためにありがとう、しかし別の質問、どのように私は常にそれをテストすることができるだろう(私はイムはかなり新しい申し訳ありませんが、しかし、私感謝の気持ちを伝えることができます:) –

+0

私はコードの2つの部分を組み合わせた新しい関数を追加しました。関数get_status( "process_name")を呼び出してプロセスのステータスを取得することができます。 (psutilをインストールする必要があることに注意してください) – Yaron

+0

thx、しかし、あなたは私のコード全体でこれを常にチェックする方法を知っていますか、それは不可能ですか? psutil.Process(p).name()== process_name] print(pids)psutil.Process(p).name()== process_name]の場合、psutil.pidsのpにpを指定してください。 –