리눅스2023. 4. 18. 18:19

반달가면 이글루에서 백업 - http://bahndal.egloos.com/531413

 

우분투 서버에 GUI 데스크탑 환경을 설치했을 경우, 로그인했을 때 자동으로 GUI 데스크탑 환경을 시작하게 만드는 방법이다. (우분투 서버에서의 GUI 데스크탑 환경 설치는 이전 게시물을 참고하자.)

홈 디렉토리의 .profile 파일에 X윈도우 시작 명령을 추가하면 되는데, 원격에서 ssh 접속을 할 경우와 직접 로그인하는 경우를 구분해 주어야 한다. ssh 접속에서는 X윈도우가 실행되지 않아야 되기 때문이다.

.profile 파일을 편집하자.

vi ~/.profile

파일 맨 아래에 아래와 같은 내용을 추가한다.

if [[ -z $DISPLAY ]] && [[ `tty` = "/dev/tty1" ]]
then startx
fi
 
위의 내용을 간단하게 설명하자면 이렇다.

X윈도우가 구동되면 DISPLAY 변수값이 정의된다. X윈도우가 구동되지 않은 상태라면 해당 변수값이 정의되지 않았으므로, 변수값의 길이는 0이 될 것이다. if 구문에서 -z 옵션은 문자열의 길이가 0인 경우에 참(true) 이 된다.

# GUI 데스크탑의 터미널창에서 DISPLAY 변수 확인 예시 - :0.0 이런 식으로 출력된다.
echo $DISPLAY
:0.0

원격에서 ssh 접속한 것이 아니라 직접 로그인했다면 콘솔 ID가 tty1이다. 즉, tty 명령을 실행한 결과가 /dev/tty1이 된다.

# ssh 접속후  tty 확인 예시 - /dev/pts/번호  이런 식으로 출력된다
tty
/dev/pts/4

로그인했을 때 .profile 실행과정에서 $DISPLAY 변수가 정의되지 않았고 콘솔 ID가 /dev/tty1이면, 직접 로그인한 것이고 X윈도우가 구동되지 않은 상태인 것이므로 startx 명령으로 GUI 데스크탑 환경을 구동하게 된다.

728x90
Posted by 반달가면