1
私は現在のプロセスを置き換えるのにPythonのos.execv
を使いたいですが、新しいプロセスがstdout
を別のプロセス(ログを収集してネットワーク経由で出荷する)に送ることも欲しいです。ログを収集するプロセスは、オリジナルのPythonプロセスによっても開始する必要があります。Pythonのexecvとパイプ出力
私はフォーク、dup2、execvのものを行う必要があると推測していますが、私はいくつかの助けが必要です。 bashで
、それはあなたがこのようにパイプとプロセスを設定することができ、この
#!/bin/bash
exec ./foo ∣ ./bar
'subprocess'モジュールはあなたのためにこれを行うことができます。https://gist.github.com/JacobIRR/dced5ce0f19e4f376aaef19d0e80d9d7 – JacobIRR
@JacobIRRサブプロセスでコマンドを実行することを、それが現在のプロセスに代わるものではありません。 – Barmar
微妙なことに、Bashではそれはあなたが思うところではありません。メインプロセスはパイプラインの最終段階に従っているので、 'exec'は効果がありません。明確化のために@ephemientありがとう。 – ephemient