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

前にドットを追加すると、すべてが修正されます。ただし、セッションの完了時にUbuntuが正しく削除されないように見えるため、次回のログイン時に正しく機能するように毎回手動で削除する必要があります。

それでは、ログアウトする前にどのようなコマンドを実行できるかを見てみましょう。その場合は、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を使用して2つの方法を組み合わせることです/etc/xrdp/sesman.iniFuseMountName=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

ログアウトしてから再度ログインすると、問題は自然に解決されます。

関連情報