モジュールを使用して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。
では、どのようにして望ましい結果を得るのでしょうか?