명령줄 인수를 사용하지 않고 이전 세션에 다시 연결하도록 GNU screen 또는 tmux를 어떻게 구성합니까?

명령줄 인수를 사용하지 않고 이전 세션에 다시 연결하도록 GNU screen 또는 tmux를 어떻게 구성합니까?

시작GNU 화면또는멀티플렉서초기 기본 쉘(예를 들어 chsh를 사용하여 설정합니다.), 다음과 같은 매개변수 전달은 지원되지 않는 것 같습니다.화면의 경우 "-d RR"그리고tmux "추가".chsh의 매개변수는 쉘 파일 실행 파일의 전체 경로 이름입니다.(에 나열됨 /etc/shells).

화면의 경우 이전 화면 세션에 다시 연결하는 내부 명령이 있나요? 아니면 어떤 방법이 있나요?당기다이전 스크린 세션에서 현재 세션까지의 개별 프로세스는 무엇입니까?

~/.tmux.conftmux의 경우 사용자 프로필( 기본적으로)에서 이전 세션으로 직접 이동하는 옵션을 설정하는 방법이 있습니까 ?

인수 없이 tmux를 시작한 후(새 세션 생성) 수동으로 이전 세션( CTRL+ B, ()으로 전환한 다음 새로 시작된 세션( CTRL+ B, :kill-session -a)을 종료할 수 있습니다.

답변1

좋은 생각. 다음 과 같은 래퍼를 만들겠습니다 /bin/my-screen.

#!/usr/bin/env sh

screen -d -RR

실행 가능하게 만들고 다음에 추가하십시오 /etc/shells.

echo /bin/my-screen | sudo tee -a /etc/shells

기본 셸로 설정합니다.

chsh --shell /bin/my-screen

일부 터미널 에뮬레이터(예: xterm기본적으로 정의된 에뮬레이터)는 쉘을 실행하지 않지만 먼저 변수를 확인합니다 /etc/passwd.$SHELL

이것을 다음 항목에 추가해 볼 수 있습니다 ~/.screenrc.

screen -X screen -d -RR

하지만 이 솔루션에는 잠재적인 문제가 있다는 점에 유의하세요. 다시 연결할 기존 세션이 screen없으면 screen전혀 시작할 수 없습니다. 즉 screen, 해당 쉘을 기본 쉘로 설정하면 시스템에 로그인할 수 없습니다.

답변2

내 zshrc 하단에 다음이 있습니다.

[ -z "$TMUX" ] && {
    tmux attach || tmux new-session
}

지금까지 어떤 문제도 발생하지 않았습니다. 내 생각에는 해당 서버에서 몇 년 동안 있었던 것 같습니다.

관련 정보