tmuxで停止したSSHセッションを終了する方法

tmuxで停止したSSHセッションを終了する方法

これは私の設定です。

Workstation==ssh=>jumphost(tmux with split panes)==ssh=>server1
                                                 ==ssh=>server2

サーバーへの2つの接続のいずれかが応答しない場合、どのように終了しますか?

送信は~.最初のSSHセッションを終了するので、便利なオプションではありません。

答え1

親セッションに影響を与えずにネストされたSSHセッションを終了するには、内部セッションがEscキーを受け取る必要があります。

~Enterキーを押してから、エスケープシーケンス~を内部セッションに転送してエスケープシーケンスを開始できます。その後、後続のアクションを使用して.内部セッションを終了できます。

答え2

私の考えではこの他の答えさて、おそらくこれが私の最初の選択肢でしょう。別の方法は、tmuxが提供する機能を次のように使用することです。

prefix、を入力しますx(デフォルトprefixCtrl+ b)。ウィンドウを終了することを確認してください。

ウィンドウで実行されているプロセスはため息をつくsshサーバーが直系の子であるかどうかにかかわらず、tmux間にシェルがある場合はSIGHUPを受信して​​終了*する必要があります。tmuxsshssh

tmuxSIGHUPを受信する他のプロセス、特にシェル(および存在する場合)がある場合がありますssh。これがあなたに合っているかどうか自分に尋ねてください。

他の答えはsshに固有のもので、tmuxには依存しませんが、この答えはtmuxに固有であり、sshには依存しません(tmux内で他のプログラムを終了するために使用できます)。


*nohup実行するために使用されていない限り。主な使命nohupは、SIGHUPからプロセスを保護することです。

関連情報