LinuxMint with Xvnc via tcpserver

VNCのディスプレイ番号 8 でリモートログインセッションを作成する。 例中 5908 とあるのが :8 を意味する。

apt install -y tigervnc-standalone-server
apt install -y ucspi-tcp daemontools-run
mkdir /service
service daemontools start
mkdir -p /var/daemons/Xvncserver/log/main
cd /var/daemons/Xvncserver
cat > run <
cat > log/run <
chmod +x run log/run
chown syslog log/main
vi /etc/lightdm/lightdm.conf

lightdm.conf で

[XDMCPSserver]
enabled=true

にして、

service lightdm restart

する。XDMCPが効いてるかの確認はXnestがあると楽。

apt install -y xnest
Xnest -query localhost :1

でログインが面画出て来ればOK、出て来なければlightdmの設定見直し。 ログインが面画出たらログインしてみる。ところがおそらくエラーになる。

Could not aqcuire name on session bus

ぐぐる。なんと、環境変数をunsetするだけでよいようだ。 きれいな方法が分からない。あきらめて直接システムファイルをいじる。

vi /etc/X11/Xsession.d/55mate-session_materc

1行目に以下を追加。

unset DBUS_SESSION_BUS_ADDRESS

これで Xnest でのログインができるはず。

いよいよdaemontools経由でvncserver起動。……と、 その前に、手動で ./run を起動してうまく機能するか確認した方がよい。

cd /var/daemons/Xvncserver
./run

そして他のホストからつないでみる。

vncviewer サーバ:8

ぱちぱちぱちぱち。ではdaemontoolsに任す。

ln -s /var/daemons/Xvncserver /service

完成。