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이 두 단계를 결합하면 현재 SSH를 사용하여 연결하고 실행하고 있는 것 같습니다 .

 ssh -t user@host tmux attach

tmuxSSH 세션은 초기 셸이 아닌 연결된 프로세스의 수명과 연결되어 있으며 분리하면 tmuxSSH 연결이 자동으로 닫힙니다.

답변3

설정이 그렇지 않은 경우또한이상해, 그럴 수도 있지SSH 연결 종료Enter ~ .(모든 개별 키). 세션은 tmux분리되어야 합니다(다른 SSH 연결 해제와 마찬가지로).

답변4

SSH 연결에서 자동으로 tmux를 시작합니다. 분리되면 로그아웃하세요. 통과 리눅스키드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

관련 정보