1つのコマンドを使用して、tmuxセッションからSSHセッションを分離して閉じます。

1つのコマンドを使用して、tmuxセッションからSSHセッションを分離して閉じます。

使用中のtmuxセッションを終了せずにsshセッションを終了したい場合がよくあります。これを行うには、次のコマンドを実行する必要があります。

tmux detach
exit

またはCtrl+B Dショートカットを使用してくださいexit

これを単一のコマンドで単純化する方法はありますか?エイリアスを試しましたが、tmuxセッション内で両方のコマンドを実行しているようです。

答え1

あなたはそれを使用することができますtmux detach -P

または~.シャットダウンsshを使用します(これを行うとttyが消え、tmuxが切り離されます)。

答え2

自動的に切断されるのではなく、接続を変更します。tmux attachこれら2つの手順を組み合わせると、現在SSHを使用して接続して実行しているようです。

 ssh -t user@host tmux attach

tmuxSSH セッションは初期シェルではなく接続されたプロセスの寿命に関連付けられており、切断するとtmuxSSH 接続は自動的に閉じます。

答え3

設定がそうでない場合またおかしい、そうかもしれないSSH接続の終了Enter ~ .(すべての個々のキー)。セッションはtmux分離する必要があります(他のSSH切断と同様)。

答え4

SSH接続で自動的にtmuxを起動します。分離したらログアウトしてください。 渡す LinuxキッドOPが要求したように完全にbashで:

このビットは、サーバーにSSHで接続すると自動的にtmuxを開きます。セッションが存在しない場合、新しいセッションが作成されます。それ以外の場合は、最後のセッションが追加されます。これは常に.bashrcで最後に実行するか、.bashrc.dでスクリプトとして実行する必要があります。ユーザーが切断されると、サーバーからログアウトされます。
# This should always be run last either in .bashrc or as a script in .bashrc.d
if [[ -z "$TMUX" ]]; then
    tmux has-session &> /dev/null
    if [ $? -eq 1 ]; then
      exec tmux new
      exit
    else
      exec tmux attach
      exit
    fi
fi

関連情報