Ubuntuサーバー16.04 Gnomeでx11vncサービスを開始できません。 14.04で問題なく動作していました。 x11vnc自体またはsystemdに関連しているかどうかは不明です。
Systemdサービスファイルは次のとおりです。
[Unit]
Description=Start x11vnc at startup.
After=multi-user.target
[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared -o /var/log/x11vnc.log
[Install]
WantedBy=multi-user.target
/etc/x11vnc.passが存在し、x11vnc -storepasswd /etc/x11vnc.passwd
を使用して生成されています
再起動後、x11vncが起動しますが、vncで接続できないため、x11vnc.logファイルに次のように記載されています。
03/05/2017 16:12:19 passing arg to libvncserver: -rfbauth
03/05/2017 16:12:19 passing arg to libvncserver: /etc/x11vnc.pass
03/05/2017 16:12:19 passing arg to libvncserver: -rfbport
03/05/2017 16:12:19 passing arg to libvncserver: 5900
03/05/2017 16:12:19 x11vnc version: 0.9.13 lastmod: 2011-08-10 pid: 30259
xauth: unable to generate an authority file name
03/05/2017 16:12:19 -auth guess: failed for display='unset'
03/05/2017 16:12:19 -auth guess: since we are root, retrying with FD_XDM=1
03/05/2017 16:12:19 -auth guess: failed for display='unset'
X11vncが正常に動作することを検証するには、サーバーで手動で実行するだけです。
x11vnc -rfbauth /etc/x11vnc.passwd
これでvncに正常に接続できます。しかし、どうすれば自動的に起動できますか?
ユーザーがログインしたとき、アップスタートスクリプトが実行されたようです。次に、ログインに関連するアクセス環境変数を持ち、ユーザーとして実行されます。
ログインしているsystemd変換は、ログインセッションのコンテキストではnotではなく、バックグラウンドでrootとして実行されます。
特定のユーザーがログインしたときにこれを開始する場合は、代わりにUbuntu Unity autostart 機能の使用を検討してください。
私の経験では、systemdはグラフィカルログインプロセス中にユーザーアプリケーションを起動するのにはあまり適していません。