しばらくSSH接続しか使ってなかったので、気づいたらxrdpが繋がらなくなっていた、という出来事に遭遇、対処してみたのでご報告です。
以前<繋がらないxrdpをとりあえず繋げる - treedown’s Report>とは違った症状で繋がらなくなっていたので、その対処としてやったことを記載。
環境とエラー内容
環境はRaspberry Pi 3B+で稼働するRaspbian OSに導入したxrdp環境。
ここにWindowsからRDP接続(リモートデスクトップ接続)できるようにセットアップして何度か使っていたのですが、アップデートを繰り返しているうちに使えなくなっていたよう。
エラーは
--------------------------------------------------------------
connecting to sesman ip 127.0.0.1 port 3350
sesman connect ok
sending login info to session manager, please wait...
login successful for display 10
started connecting
connection problem, giving up
some problem
--------------------------------------------------------------
もう一台あったけど、同じエラー
「started connecting」まで接続試行が進んだところで、「connection problem, giving up」を出して接続停止しているように見えます。
うーん。
ログを確認する
xrdpのログは、「/var/log/xrdp-sesman.log」にあります。
ログを確認すれば何か分るかもしれない。
早速見てみました。
--------------------------------------------------------------
[DEBUG] Closed socket 8 (AF_INET6 ::1 port 3350)
[INFO ] Xorg :10 -auth .Xauthority -config xrdp/xorg.conf -noreset -nolisten tcp
[ERROR] X server for display 10 startup timeout
[INFO ] starting xrdp-sessvc - xpid=11683 - wmpid=11682
[ERROR] X server for display 10 startup timeout
[ERROR] another Xserver might already be active on display 10 - see log
[DEBUG] aborting connection...
[INFO ] ++ terminated session: username %USERNAME%, display :10.0, session_pid 11681, ip 0.0.0.0:51898 - socket: 12
--------------------------------------------------------------
エラー「X server for display 10 startup timeout」が発生し、その後「another Xserver might already be active on display 10 - see log」が記録されています。
「別のXサーバーがディスプレイ10ですでにアクティブになっている可能性があります-ログを参照してください。」と記載があるのが見て取れますが、他でディスプレイなんてつかってないんだけどなぁ。
解決策:Ubuntuで以前にあった?
なんかこう、ネット上の情報をいろいろ探していると、Ubuntuの17くらいのときにこういう症状があったらしい。
設定ファイル「/etc/X11/Xwrapper.config」を編集する必要がある、という解決法。
さっそくコマンド
$ sudo vi /etc/X11/Xwrapper.config
実行。
標準で、
こうなっているファイル、デフォルトの記述「allowed_users=console」をコメントアウトして、「allowed_users=anybody」を追記しました。
書き換えたら、ファイルを保存して、
$ sudo service xrdp restart
サービスをリスタート。
無事Windowsからのリモートデスクトップ接続でRaspberry Piのデスクトップが開きました。
対処完了。