モジュールを使用してsubprocess
、プロセスが実行されているかどうかを確認しています。ただし、検索するプロセスが存在しない場合、結果は異なります。
たとえば、シェルでは、プロセスpython test.py
が存在しない場合、の出力ps -ef|grep python|grep test|awk '{print $2}'
は空です。しかし、Pythonでは:
cmd="ps -ef|grep python|grep test|awk '{print $2}'"
vp=subprocess.Popen(cmd,stdout=subprocess.PIPE,shell=True)
r=vp.communicate()[0]
出力r
はNoneではありません。を実行しているシェルのpidですcmd
。
では、どのようにして望ましい結果を得るのでしょうか?