OS: Ubuntu 16.04 (amd64)
GPU: AMD Radeon HD 7850
우분투 16.04에서 그래픽 카드로 AMD 것을 썼더니, 그다지 매끄럽게 잘 작동하는 것 같지가 않다. 몇 년 전에 비하면 점점 좋아지고는 있지만, Nvidia 그래픽 카드에 비하면 여전히 오류가 많이 발생하는 것이 체감된다.
나는 업무 특성상 우분투 PC에 연결된 모니터 2개를 다 쓰다가 가끔 출력을 모니터 1개로만 내보내는 등의 디스플레이 설정을 자주 변경하는 편인데, 그러는 과정에서 열에 한 번 정도는 화면을 재구성하는 과정에서 화면 전체가 멈추는(freezing) 문제가 발생한다.
(Ubuntu 16.04에 있는 디스플레이 설정)
증상을 보면, 마우스는 마음대로 움직일 수 있는데, 화면 전체가 고정된 이미지처럼 꼼짝도 하지 않고 아무 것도 클릭할 수 없다. 키보드로 몇몇 단축키(창 닫기, Super 키를 눌러서 Unity 메뉴 보이기 등의 시도)를 눌러 봐도 화면 상에는 아무 변화가 일어나지 않는다.
하지만 정작 시스템은 멀쩡하게 돌고 있는 상황이다. 다른 컴퓨터에서 SSH로 접속해도 잘 되고, 웹 서버도 잘 돌고 있고, 데스크탑 화면에서 돌리는 모든 프로그램이 다 켜져 있는 것으로 잡히기 때문이다. 즉, 유일하게 화면을 '그리는(?)' 부분만 고장이 났다고 볼 수 있다.
가장 쉬운 해결 방법은 물론 그냥 전원 버튼을 직접 눌러서 강제로 재부팅하거나, 쉘이 작동한다면 sudo reboot 명령으로 재부팅하는 방법이겠지만, 기왕이면 이미 돌아가고 있는 서비스들을 유지하고 화면만 복구하는 것이 좋을 것이다.
Unity의 디스플레이 설정이 모니터 2개를 제어하는 과정에서 문제를 일으키거나, Unity (lightdm 서비스) 자체가 오류가 나서 다운되는 경우이므로 이 두 가지를 해결하는 것이 핵심이다.
내가 시도해 본 해결 방법은 다음과 같다.
1. Ctrl + Alt + F1 키를 눌러서 tty1 쉘 화면에 진입한다.
만약 이것이 뜨지 않는다면, 다른 컴퓨터에서 SSH를 통해 접속이 되는지 확인한다. SSH로도 접속이 안 되면 정말로 시스템이나 커널이 다운된 것이므로 강제로 재부팅을 해야 한다.
2. 쉘에 로그인한 뒤, 문제의 원인이 되는 디스플레이 설정 프로세스를 검색한다.
$ ps -ef | grep unity-control-center
만약 프로세스가 실행 중인 것으로 검색이 되면, 해당하는 프로세스의 PID를 가지고 kill 한다.
$ sudo kill -9 [PID of unity-control-center]
3. Ctrl + Alt + F7 키를 눌러서 다시 우분투 Unity 화면으로 돌아온다.
만약 화면이 정상적으로 반응을 한다면 고쳐진 것이다.
4. 3번까지 했는데도 여전히 화면이 아무 반응이 없으면, Ctrl + Alt + F1 키를 눌러서 다시 tty1 쉘 화면에 진입하고, 아래 명령으로 lightdm 서비스를 재시작한다.
$ sudo service lightdm restart
그러면 곧바로 우분투 데스크탑 로그인 화면이 뜰 것이다.
아쉽지만, lightdm 서비스를 재시작하게 되면 그 전에 화면에 띄워져 있던 어플리케이션은 모두 강제 종료된다.
사족)
잠깐... 이러면 재부팅과 거의 다를 바가 없잖아? ㅠㅠ
그래도 재부팅보다는 빨리 복귀할 수는 있으니 조금 더 좋은 걸로?
그리고 백그라운드 서비스 몇 개는 살아 있으니까 완전 재부팅은 아님..
'IT > Linux' 카테고리의 다른 글
Bash shell에서 for 루프 사용하기 (1) | 2018.03.16 |
---|---|
리눅스에서 FreeRDP(xfreerdp)로 윈도우10 (2018년 1월 이후) 로그인이 안될 때 (0) | 2018.03.15 |
쉘(shell) 스크립트에서 다른 쉘 스크립트로 변수 넘기기 (0) | 2018.02.06 |
Ubuntu 16.04 + Google Chrome 브라우저 == Dropbox install failure (0) | 2017.08.20 |
Ubuntu 호스트 이름(hostname) 변경 후 unable to resolve host 에러 발생하는 경우 (0) | 2017.07.07 |