시작GNU 화면또는멀티플렉서초기 기본 쉘(예를 들어 chsh를 사용하여 설정합니다.), 다음과 같은 매개변수 전달은 지원되지 않는 것 같습니다.화면의 경우 "-d RR"그리고tmux "추가".chsh의 매개변수는 쉘 파일 실행 파일의 전체 경로 이름입니다.(에 나열됨 /etc/shells
).
화면의 경우 이전 화면 세션에 다시 연결하는 내부 명령이 있나요? 아니면 어떤 방법이 있나요?당기다이전 스크린 세션에서 현재 세션까지의 개별 프로세스는 무엇입니까?
~/.tmux.conf
tmux의 경우 사용자 프로필( 기본적으로)에서 이전 세션으로 직접 이동하는 옵션을 설정하는 방법이 있습니까 ?
인수 없이 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
}
지금까지 어떤 문제도 발생하지 않았습니다. 내 생각에는 해당 서버에서 몇 년 동안 있었던 것 같습니다.