目次: Linux
ネットワークが不安定な環境でLinux PCのxrdpサーバーに接続していると、下記のようなログが出てネットワーク要因で切断されることがあります。
[INFO][com.freerdp.client.common] - [client_auto_reconnect_ex]: Network disconnect!
切断後に再接続できますが、ときおり画面が真っ黒なまま表示されなくなる、もしくは表示に長い時間が掛かることがあります。xrdpのコードを追ったわけではないので断定はできませんが、
だとこの症状が発生するようです。このとき接続先サーバー(Ubuntu 24.04 LTSを使用)のプロセス一覧を見るとxrdpのセッションを維持していると思われるプロセスが残っています。
|-xrdp,1812,xrdp ★★サービス `-xrdp,1187497 ★★配下にxrdpが残っている `-xrdp-sesman,1756 `-xrdp-sesman,2791 |-Xorg,2809,katsuhiro :10 -auth .Xauthority -config xrdp/xorg.conf -noreset -nolisten tcp -logfile .xorgxrdp.%s.log
この状態にハマってfreerdpなどクライアント側の画面が出ない状態になったら、接続先のサーバーマシンのプロセス一覧を調べ、xrdpサービス配下に溜まっているxrdpサーバープロセスをkillコマンドで強制的に終了させると画面がすぐ表示されるはずです。
|-xrdp,1812,xrdp ★★サービスは終了させてはだめ `-xrdp,1187497 ★★配下にxrdpが残っていたら終了させる `-xrdp-sesman,1756 `-xrdp-sesman,2791 |-Xorg,2809,katsuhiro :10 -auth .Xauthority -config xrdp/xorg.conf -noreset -nolisten tcp -logfile .xorgxrdp.%s.log
注意点はなんだろな?強いて言えば、xrdpサービスやxrdp-sesmanサービスを終了させないようにするくらいでしょうか。間違ってxrdpサービスを止めてしまうと、サーバー側のリモートデスクトップ環境で起動していたアプリケーションも終了してしまい、場合によっては変な状態で残って動かなくなったりします。
目次: Linux
最近udevを少しいじっていたので忘れないうちにメモします。DebianやUbuntuですとudevの設定ルールファイル(*.rules)の配置は、
です。後者は有名なので知っていましたけど、前者を知ったのは最近でした。きっかけは/etc/udev/rules.dに一切記述がないのに、udevがパーミッションを設定しているデバイスファイルを見かけたことです。誰がどこで設定しているのか?を探して、前者の/usr/lib/udev/rules.dの存在に気づきました。
存在に気づいてからinfo udevを読んでみると、当り前ですけどちゃんとルールファイルの置き場が書いてあり、先ほどの2つだけでなく、
この4つのディレクトリだよと書いてありました。知らなんだ。
あまりudevの設定をデバッグする人は居なさそうですけど、udev設定のデバッグ時はudevが何のイベントとデバイス属性を検知したか?を知る必要があります。知る方法は簡単で、
# udevadm monitor -p
を実行するだけです。例えば私のマシンでttyS0のイベントを見ると、こんな表示になります。
KERNEL[3314156.538635] change /devices/pnp0/00:04/00:04:0/00:04:0.0/tty/ttyS0 (tty) ACTION=change DEVPATH=/devices/pnp0/00:04/00:04:0/00:04:0.0/tty/ttyS0 SUBSYSTEM=tty SYNTH_UUID=0 DEVNAME=/dev/ttyS0 SEQNUM=8729 MAJOR=4 MINOR=64
ACTION=の部分がイベントの種類です。udevを使う人に用があるイベントはaddかchangeでしょう。
続きはまた後日。