これが私のシナリオです: Paramiko を使用していくつかのタスクを自動化しようとしています。タスクは次の順序で開始する必要があります ((ホスト、タスク) の表記を使用): (A, 1)、(B, 2)、(C, 2)、(A,3)、(B,3) - - 基本的に、いくつかのテストのために正しい順序でサーバーとクライアントを起動します。さらに、テストではネットワークが混乱する可能性があり、テストからの出力の一部が必要なため、出力をファイルにリダイレクトしたいと思います。
同様のシナリオでは、一般的な応答は「screen -m -d」または「nohup」を使用することです。しかし、paramiko の exec_cmd では、nohup は実際には終了しません。使用:
bash -c -l nohup test_cmd &
どちらも機能しません.exec_cmdはまだプロセスの終了をブロックしています。
screen の場合、出力のリダイレクトはうまく機能しません (実際には、私が把握している限りではまったく機能しません)。
以上の説明の後、私の質問は次のとおりです。paramiko の exec_cmd ブロッキングを終了するような方法で、プロセスをデタッチして出力をキャプチャする簡単でエレガントな方法はありますか?
アップデート
これには dtach コマンドがうまく機能します。