SSH 로그인 중 자동 실행 화면 문제

SSH 로그인 중 자동 실행 화면 문제

내가보고 있어요http://taint.org/wk/RemoteLoginAutoScreenSSH를 통해 로그인하면 자동으로 스크린 세션이 시작되도록 서버를 설정합니다.

내 .bashrc에 다음을 추가했습니다.

# Auto-screen invocation. see: http://taint.org/wk/RemoteLoginAutoScreen
# if we're coming from a remote SSH connection, in an interactive session
# then automatically put us into a screen(1) session.   Only try once
# -- if $STARTED_SCREEN is set, don't try it again, to avoid looping
# if screen fails for some reason.
if [ "$PS1" != "" -a "${STARTED_SCREEN:-x}" = x -a "${SSH_TTY:-x}" != x ]
then
  STARTED_SCREEN=1 ; export STARTED_SCREEN
  [ -d $HOME/lib/screen-logs ] || mkdir -p $HOME/lib/screen-logs
  sleep 1
  screen -RR && exit 0
  # normally, execution of this rc script ends here...
  echo "Screen failed! continuing with normal bash startup"
fi
# [end of auto-screen snippet]

문제는 항상 Rails 애플리케이션 서버를 실행하는 별도의 명명된 스크린 세션이 있다는 것입니다. 이제 로그인하면 이 세션으로 이동됩니다.

이름이나 다른 값으로 세션을 선택하지 않도록 위의 코드를 수정할 수 있습니까? 분리된 세션이 유일한 화면 세션인 경우 새 화면 세션을 시작하고 싶습니다.

내가 가진 또 다른 문제는 분리할 때 스크린 세션을 떠나는 대신 SSH 연결을 완전히 종료한다는 것입니다.

답변1

다음으로 변경하세요.

if [ -z "$STARTED_SCREEN" ] && [ -n "$SSH_TTY" ]
then
  case $- in
    (*i*)
      STARTED_SCREEN=1; export STARTED_SCREEN
      mkdir -p -- "$HOME/lib/screen-logs"
      screen -RR -S main  ||
        echo >&2 "Screen failed! continuing with normal bash startup"
  esac
fi

즉, 다른 화면 세션 대신 "main"이라는 이름의 화면 세션을 연결(또는 생성)하고 화면이 성공적으로 돌아온 후에 종료하지 마세요.

관련 정보