web-dev-qa-db-ja.com

systemdを使用したUbuntu 16.04 Gnome上のx11vnc

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に正常に接続できます。しかし、どうすれば自動的に起動できますか?

3
M-Jack

ユーザーがログインしたとき、アップスタートスクリプトが実行されたようです。次に、ログインに関連するアクセス環境変数を持ち、ユーザーとして実行されます。

ログインしているsystemd変換は、ログインセッションのコンテキストではnotではなく、バックグラウンドでrootとして実行されます。

特定のユーザーがログインしたときにこれを開始する場合は、代わりにUbuntu Unity autostart 機能の使用を検討してください。

私の経験では、systemdはグラフィカルログインプロセス中にユーザーアプリケーションを起動するのにはあまり適していません。

1
Mark Stosberg