私は制御ホストになりたいセッションでsshを呼び出しているので、-M
フラグを使用します(hadと同じControlMaster yes
)。
ただし、以前のセッションが失敗し、ゾンビ制御ファイルが残っている場合、sshはログのみを記録し、ControlSocket <control socket path> already exists, disabling multiplexing
接続を確立し続けます。これは、制御ソケットが実際に後続のセッション用に設定されていないことを意味します(ControlMaster no
)。
スクリプトが問題を検出して報告できるように、制御ソケットファイルがすでに存在する場合にsshが失敗するようにする方法はありますか?スクリプトに制御ファイルを確認させることはできますが、スクリプトは制御パス(ホストエイリアスやControlPathなどのSSH構成設定のため明確ではない可能性があります)を使用する必要があります。
この質問は以下に関連しています。
SSH制御ソケットがすでに存在する場合、どのように中断しますか?。既存の制御セッションのために存在する制御パスファイルに関する質問です。問題は、以前のセッションの失敗によって発生します。また、このセッションが多重化を制御できるようにマスターセッションになることを望みます。したがって、削除だけでは-M
問題は解決されません。ありがとうございます!