web-dev-qa-db-ja.com

Ubuntu GNOME 16.04のシステムで起動するようにTigerVNCサーバーを構成する

buntu GNOME 16.04. で実行するようにTigerVNCサーバーを設定しようとしています。 この投稿 を使用して TigerVNC の最新バージョン( 1.8 )をインストールしました。次を使用してサーバーを起動した場合:

vncserver :4 -geometry 1920x1080 -depth 24 -nolisten tcp -localhost

完璧に機能します。 SSHを介してdisplay 4に接続し、ラボの実際の(物理)ディスプレイのロックを解除せずにコンピューターにフルアクセスできます。また、ラップトップのディスプレイに合わせてジオメトリを調整できるため、すべてが完璧です。

次に、systemdを使用して、起動時にサーバーを起動しようとしましたが、 この投稿 が役立ちました。ただし、GNOMEデスクトップを実行しており、ブログの設定はUnity用です。私は自分のマシンにUnityをインストールしていません。それを避けたいです。

Unityの代わりにGNOMEデスクトップを使用するように、その投稿のステップ7と8を変更するにはどうすればよいですか?リモート接続すると黒い画面が表示されるだけなので、スキップすると機能しないことがわかります。


実際、vncserverが起動時に確実に開始されるようにする別の方法がある場合、それも回答として受け入れられます。 TigerVNCは/etc/init.d/vncserverというスクリプトをインストールしますが、update-rc.dを使用して起動できません

1
Kartik

このsystemdユニットファイルは私のために働いた:

[Unit]
Description=Start TigerVNC Server at startup
After=syslog.target network.target

[Service]
Type=forking
User=user
PAMName=login
PIDFile=/home/user/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver :%i -depth 24 -geometry 1920x1080 -nolisten tcp -localhost
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

[Service]の下のuserおよびUserに対応する行で、PIDFileを実際のユーザー名に置き換えてください。

  • このファイルを[email protected]/etc/systemd/system/として保存しました
  • systemctl enable [email protected]でシンボリックリンクファイル[email protected]を作成する/etc/systemd/system/multi-user.target.wants/で有効にし、[email protected]/etc/systemd/system/を指す
  • systemctl start vncserver@4でサービスを開始しました

ニーズに合わせて、有効にするときに4(代わりに)の代わりにdisplay番号を使用してください。また、サービスを開始する前に、このサービスユニットファイルの外部でvncserverを初期化したことを確認してください。これにより、パスワードが確保され、必要なファイル(xstartupなど)が作成されます。最も簡単な方法は、Unitファイルの[Service]ExecStartに対してコマンドを実行することです。私の場合、それは次のように翻訳されます:

vncserver :4 -depth 24 -geometry 1920x1080 -nolisten tcp -localhost

ソース: このガイド からユニットファイルを調整しました。

1
Kartik