xrdp의 성가신 문제

xrdp의 성가신 문제

Linux 기반 서버를 설치해야 했기 때문에 많은 문제에 직면한 끝에 마침내 모든 문제를 극복할 수 있었습니다.

이제 xrdp를 구성하고 있는데 언뜻 보기에는 모든 것이 잘 작동하지만 문제는 문제가 발생하여 이를 해결할 방법을 찾을 수 없다는 것입니다.

제 직장에는 많은 컴퓨터가 있는데 그 중 2대만 Linux를 실행하고 나머지는 Windows입니다. 문제는 Windows/Linux 간의 UI 원격 연결에 있습니다.

누군가 Windows 기본 원격 애플리케이션을 사용하면 그 사람은 문제 없이 연결할 수 있고 씬 클라이언트를 통해 원격 컴퓨터(서버)와 파일을 공유할 수도 있지만 처음에만 가능합니다.

사용자가 세션을 종료하고 나중에 돌아와서 새 세션을 시작한 다음 Thinclient_drives를 다시 열려고 하면 작동하지 않습니다.

사용자에게 다음과 같은 오류가 나타납니다. 처리되지 않은 오류 메시지: 파일 정보를 가져오는 동안 오류가 발생했습니다. 엔드포인트 전송이 연결되지 않았습니다.

전혀 이해하지 못했습니다. some1 처음 로그인할 때 제대로 작동했기 때문에 세션을 종료하지 않고 원격 연결을 종료했다가 나중에 다시 돌아와도 모든 것이 여전히 잘 작동할 수 있었기 때문입니다.

그러나 세션을 완료하고 나중에 다시 로그인하면 서버를 다시 시작할 때까지 더 이상 작동하지 않습니다.

여러 가지를 시도했지만 처음에는 숨겨진 세션이 남아 있는 줄 알았습니다. xrdp를 다시 시작해도 문제가 전혀 해결되지 않았습니다.

제거도 시도했지만 씬 클라이언트를 제거할 수 없습니다.

실행 중인 모든 프로세스를 확인하기 위해 "ps aux" 명령을 사용해 보았고 재부팅하지 않고 수정하려고 시도했지만 성공하지 못했습니다.

아무리 노력해도 무슨 일이 일어나고 있는지 알 수 없습니다. 아마도 숨겨진 과정이나 볼 수 없는 것인 것은 알지만, 이런 경우라면 어떻게 찾을 수 있는지 모르겠습니다.

현재 유일한 해결책은 원격 연결을 종료할 때 세션을 피싱하지 않는 것입니다. 그렇지 않으면 서버를 다시 시작해야 합니다.

재부팅하면 씬 클라이언트가 다시 제대로 작동하지만 한 번만 발생하면 같은 문제가 다시 발생합니다.

이 문제의 원인이나 해결 방법에 대한 제안 사항이 있습니까?

답변1

온라인에서 해결책을 검색한 후 임시 해결책을 찾았습니다.

원인은 ubuntu 18.04 버전 자체의 문제인 것 같습니다.

해결 방법은 간단합니다. 로그인한 후 가장 먼저 해야 할 일은 씬 클라이언트를 제거하는 것입니다. 저는 터미널을 통해 이 작업을 수행했습니다.

sudo umount -f thinclient_drives

thinclient_drives그 후에는 이름을 다음으로 바꿔야합니다 ..thinclient_drives

앞에 점을 추가하면 모든 것이 수정됩니다. 그러나 세션을 완료할 때 우분투가 제대로 제거되지 않는 것처럼 보이므로 다음에 로그인할 때 제대로 작동하도록 매번 수동으로 제거해야 합니다.

이제 로그아웃하기 전에 어떤 종류의 명령을 실행할 수 있는지 알아보겠습니다. 그렇다면 b4가 로그인할 때마다 제거하는 명령을 설정하여 문제를 해결하겠습니다.

답변2

vi(m) /etc/xrdp/sesman.ini파일.

[Chansrv] 아래에 다음을 추가합니다. FuseMountName=/tmp/%u/thinclient_drives

로그아웃했다가 다시 로그인하세요. 이제 Thinclient_drives가 에 설치됩니다 /tmp/{uid}/thinclient_drives.

당신은 rmdir thinclient_drives당신의 homedir에서 할 수 있습니다.

답변3

나는 여기에 있는 모든 답변을 좋아하며 이 문제를 해결하는 가장 효율적인 방법은 sed를 사용하여 두 가지 방법을 결합 /etc/xrdp/sesman.ini하여 .FuseMountName=thinclient_drivesFuseMountName=.thinclient_drives

#!/usr/bin/env bash

#set -o errexit
set -o nounset
#set -eu -o pipefail
#set -x
#trap read debug

thinclient=$(sudo cat /etc/xrdp/sesman.ini | grep FuseMountName)

if [ -z "$thinclient" ]; then
  echo 'Entry doesn'\'''t exist, adding...''
  sudo sed -i '/Chansrv/a FuseMountName=.thinclient_drives' /etc/xrdp/sesman.ini
else
  echo 'Entry exists, modifying...'
  sudo sed -i s/"$thinclient"/FuseMountName=.thinclient_drives/g /etc/xrdp/sesman.ini
fi

로그아웃했다가 다시 로그인하면 문제가 저절로 해결됩니다.

관련 정보