반응형

OS: Ubuntu 16.04.4 (amd64)


우분투에서 XRDP 서비스를 켜 두고, 윈도우 노트북에서 원격 접속을 하다 보면, 가끔 알 수 없는 문제로 인해 XRDP 서비스가 다운되고 (즉, crash) 이후로는 서비스 재시작이 안 돼서 원격 데스크탑을 쓰지 못하는 경우가 가끔 있다.

보통은 서비스 재시작 ($ sudo service xrdp restart)을 통해 문제가 해결되어야 한다. 하지만 만약 서비스 재시작이 계속 안 된다면, 기존에 실행 중이던 XRDP 서비스가 예기치 않게 죽으면서 자신이 여전히 살아있는 것처럼 정보를 남겨 둬서 그럴 가능성이 높다.

즉, 이미 죽어버린 프로세스의 PID 정보가 살아있는 것처럼 관련 정보 파일이 남겨지면서 (아마 정상적으로 종료가 되었다면 그런 PID 정보 파일들을 삭제를 했을 텐데 crash 되면서 PID 정보를 삭제를 못한 것), 새로 시작되는 XRDP 프로세스는 이미 다른 XRDP 서비스가 실행 중인 것으로 간주, listen을 하지 않고 멈추는 것으로 예상된다.


문제를 해결하려면, XRDP 서비스들과 관련해서 파일로 남겨진 PID 정보를 삭제하고 서비스를 시작한다.


<해결 방법>

1. /var/run/xrdp 디렉토리에서 XRDP 관련 서비스들의 process ID를 확인한다.

$ cat /var/run/xrdp/xrdp-sesman.pid
$ cat /var/run/xrdp/xrdp.pid 


2. 위에서 출력된 숫자(프로세스 ID)를 사용하여 프로세스를 kill한다.

$ sudo kill -9 [PID]


3. /var/run/xrdp/ 디렉토리 내의 .pid 파일 2개를 모두 삭제한다.

$ sudo rm /var/run/xrdp/*.pid 


4. XRDP 서비스를 재시작한다.

$ sudo systemctl enable xrdp.service    <-- 이건 안 해도 되는 것 같기도 하다.

$ sudo service xrdp restart


위와 같이 작업한 후에 XRDP에서 설정한 포트 번호가 Listen 상태로 뜨면 정상 작동하는 것이다.
XRDP에서 포트 번호를 따로 변경해 주지 않았다면 기본적으로 listen하는 포트 번호는 3389이다.

$ netstat -nap | grep 3389

tcp        0      0 0.0.0.0:3389           0.0.0.0:*               LISTEN      18357/xrdp



반응형
블로그 이미지

Bryan_

,