すでに実行中のプロセスにコンソールのSTDIN/STDOUTを接続する方法はありますか?Python:* nixで実行中のプロセスのSTDIN/OUTと対話する
使用事例:
私はpopen
を使用して、コマンドラインで別のPythonスクリプトを実行するPythonスクリプトを持っています。
たとえば、foo.py
はpython bar.py
を実行するためにpopen
を実行します。
次に、入力時のbar.py
ブロック。私はpython bar.py
のPIDを得ることができます。対話的に動作するために、実行中のPythonインスタンスに新しいコンソールを接続する方法はありますか?これはpdb
をbar.py
の内部で実行したいので特に便利です。
+1の名前付きパイプ –
これは有望です - 名前付きパイプで 'Popen'を使って入出力を行うことができますが、' exec'の使い方は分かりません。私は 'os.mkfifo( '/ tmp/testout')'と 'os.mkfifo( '/ tmp/testin')'を使って2つの名前付きパイプを設定し、 'Popen(cmd、stdout = open( '/ tmp/testout '、' a ')、stdin = open('/tmp/testin '、' r ')) 'を実行します。'exec>/tmp/testin tmp/testout'を試しましたが、何もしていないように見えません。 –
' screen'を使って作業しました!どのような美しい解決策 - ありがとう!私はまだexecの使い方を知りたいと思っています。 –