1

リクエストの作成者によって作成された python サブプロセスのラッパーである「envoy」モジュールを発見しました。

「接続」機能に問題があります。使用するたびにゾンビ プロセスが発生し、status_code または結果を取得できません。

c=envoy.connect("ls -al")
c.status_code == None
 True

ps -ef|grep thepid」を実行すると、「機能していない」pid が返されます。

os.wait() または c._process.wait() を実行してゾンビを殺すことはできますが、コマンドの結果 (stdout) を取得できません...

何か案が?

4

2 に答える 2

1

あなたの場合、run()メソッドを使用する必要があります

特使のドキュメントが推奨するように:

r = envoy.run(cmd)
print r.status_code, r.std_out

ただし、コマンドを非同期で実行したい場合は、connect() その後に使用できますblock()

block()呼び出されると、戻りコードが使用可能になります。しかし、 block() はプログラムをブロックするため、ロジックはそうあるべきです。

c1=envoy.connect(cmd1)
c2=envoy.connect(cmd2)
c3=envoy.connect(cmd3)
... more staff ...
c1.block()
print c1.status_code
于 2013-12-02T14:41:39.613 に答える