お世話になっております、黒川と申します。
xrdp 0.9.19 + xorgxrdp 0.2.18 + pulseaudio-module-xrdpを
CentOS 8 Streamにインストールし利用致しております。
Windows 11のmstsc.exeからxrdpのセッションに接続し、
その後Gnomeからログアウトすると、
「
リモート デスクトップ接続
リモート デスクトップ サービス セッションが終了しました。
おそらくネットワーク接続の問題が原因で、リモート コンピューターへの接続が失われました。リモート コンピューターへの接続を再試行してください。問題が解決しない場合は、ネットワーク管理者またはテクニカル サポートに問い合わせてください。
エラーコード: 0x904
拡張エラーコード: 0x0
」
のエラーが表示されます。
エラーが表示されてもログアウトは正常に行われていましたので
今までは気にしてはいませんでした。
ですが、詳しく調べてみましたら、
上記のエラーが発生するとxrdp-sesmanのプロセスが残ってしまうらしく
XRDPのセッションを切ってローカルでログインしても
XRDP_PULSE_SINK_SOCKET、XRDP_PULSE_SOURCE_SOCKET、XRDP_SESSION、XRDP_SOCKET_PATH
などのsesman/env.cで定義されている環境変数が
ローカル環境下においても定義されてしまっています。
なお、OSをリブートしてXRDPセッションに一度も接続していない状態で
ローカルでログインした場合には上記の環境変数は定義されません。
この障害に関連して、
XRDPのセッションに接続したあとでローカルにログインした場合に
pulseaudioがローカルのサウンドを正しく認識しなくなる障害も発生しています。
具体的には、ローカルでログインしているにもかかわらずxrdp-sinkが認識されており、
代わりにPC本体のサウンドカードは認識されません。
pactl load-module module-udev-detect
を手動実行すればPC本体のサウンドカードを認識しますし、
/usr/libexec/pulseaudio-module-xrdp/load_pa_modules.sh
にDISPLAY環境変数の値が10よりも小さい場合には
何もせずに終了するような処理を書き加えると
ローカル接続時にmodule-xrdp-sinkはロードされなくなります。
しかしながら、これらの対処法は本質的な解決策ではないように思えます。
これらの事象について、原因や解決法等ご存じでしたらご教授お願い致します。