subprocess.check_output()
を と一緒に使用したいのですps -A | grep 'process_name'
が、さまざまな解決策を試しましたが、今のところ何も機能していません。誰かやり方を教えてもらえますか?
ベストアンサー1
モジュールでパイプを使用するにはsubprocess
、shell=True
次の点に注意してください。セキュリティに関する考慮事項. の使用は推奨されませんshell=True
。ほとんどの場合、同じ問題に対してよりよい解決策が存在します。
ただし、これはさまざまな理由からあまりお勧めできません。特にセキュリティ上の理由が挙げられます。代わりに、ps
とgrep
プロセスを別々に作成し、次のように、一方からの出力をもう一方にパイプします。
ps = subprocess.Popen(('ps', '-A'), stdout=subprocess.PIPE)
output = subprocess.check_output(('grep', 'process_name'), stdin=ps.stdout)
ps.wait()
ただし、この特定のケースでは、簡単な解決策は、出力で を呼び出してからsubprocess.check_output(('ps', '-A'))
を呼び出すことです。str.find