SSH 로그인 시 기존 tmux 세션을 실행하거나, 존재하지 않는 경우 생성합니다.

SSH 로그인 시 기존 tmux 세션을 실행하거나, 존재하지 않는 경우 생성합니다.

SSH를 통해 서버에 로그인할 때마다 tmux 세션을 열고 싶습니다. 세션이 있으면 연결하고, 없으면 생성하여 연결합니다.

이 작업을 수행하려면 파일을 편집해야 한다고 생각 ~/.bashrc하지만 bash 스크립트에서 if/else 문이나 다른 작업을 수행하는 방법을 모르겠습니다.

어떻게 해야 하나요?

답변1

tmuxtmux attach자체적으로 이전 세션에 연결된 새 세션을 시작합니다 .

tmux attach이전 세션이 없으면 실패합니다.

이 두 가지 사실을 결합하면 다음과 같은 해결책이 제공됩니다.

tmux attach || tmux

먼저 시도 tmux attach하고 실패하면 tmux자체적으로 실행됩니다. 그렇다면 이전 세션에 연결하고, 그렇지 않으면 새 세션을 시작하세요. 이것이 첫 번째 부분입니다.

두 번째 부분에서는 SSH를 통해 로그인할 때마다 이 코드를 실행하려고 합니다. 따라서 다음 사항을 확인해야 합니다.

  1. 로그인 쉘인지 여부. 이는 를 사용하여 수행할 수 있습니다 shopt -q login_shell.
  2. SSH를 통해 연결할지 여부입니다. 이는 $SSH_CLIENT설정되어 있는지 확인하여 수행 할 수 있습니다 . 예: [ -n "$SSH_CLIENT" ].

따라서 이것을 끝에 추가해야 합니다 .bashrc.

if shopt -q login_shell && [ -n "$SSH_CLIENT" ]; then
    tmux attach || tmux
fi

관련 정보