TigerVNCはSystemdサービスを開始できません

TigerVNCはSystemdサービスを開始できません

私は最近ここで見つけたガイドに従いました。RHEL 8にVNCサーバーをインストールする方法指定されたユーザーのVNCセッションを作成します。新しいユーザーアカウントを作成し、engineer次のように新しいユーザーアカウントを指すようにsystemdサービスファイルを更新しました。

[engineer@localhost ~]$ cat /etc/systemd/system/[email protected]
[Unit]
Description=Remote Desktop Service (VNC)
After=syslog.target network.target

[Service]
Type=forking
WorkingDirectory=/home/engineer
User=engineer
Group=engineer

PIDFile=/home/engineer/.vnc/%H%i.pid

ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver -autokill %i
ExecStop=/usr/bin/vncserver -kill %i

[Install]
WantedBy=multi-user.target

engineerアカウントの新しいvncパスワードを作成し、サービスファイルを作成してsystemctl daemon-reloadコマンドを実行しました。systemctl start vncserver@:1ガイドに従って、次のエラーメッセージが表示されます。

Failed to import environment: Process org.freedesktop.systemd1 exited with status 1

面倒なことに、サービスファイルを更新するまで、すべてがうまくいきましたvncserver@

興味深いことに、サービスファイルのすべての設定を元のユーザーに復元しても失敗しません。

答え1

これはそれ自体では答えではないかもしれませんが、次の2つのソースで見つけた情報に基づいて必要なものをより簡単に実装する方法を見つけたので、共有する必要があると思いました。

  1. Red Hat Enterprise Linux 8でVNCサーバーを構成する方法
  2. TigerVNCブラックスクリーン

次の手順では、すでにインストールしており、TigerVNC他の操作を実行していないと想定しています。

まず、ユーザーアカウントにログインし、次を実行してvncパスワードを作成しました。

$ vncpasswd

メッセージが表示されたときに表示専用パスワードを設定していません。

vncserver.user次に、次の場所のファイルを変更し、ファイル/etc/tigervnc/の例に従ってユーザーを追加しました。

変更を保存したら、次のコマンドを実行して、ディレクトリ/etc/tigervnc/から自分のユーザーアカウントディレクトリにユーザー環境設定テンプレートをコピーしました。home

$ cp /etc/tigervnc/vncserver-config-mandatory ~/.vnc/config

テンプレートをコピーしたら、ファイルを編集してconfigセッションと希望の画面解像度を定義しました。

session=xfce4-session
geometry=1920x1080

systemd次に、次のコマンドを実行してサービステンプレートをコピーしました。

$ sudo cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service

ファイルを正しいディレクトリにコピーした後、次の2行を使用して修正しました。

Restart=on-success
RestartSec=15

この2行を追加した理由は、VNCセッションの使用中にデスクトップ環境からログアウトすると、実際にsystemdファイルの提供が中断されることに気付いたためです。これらの追加行は、これを確認してから15秒後にサービスを再起動します。

実行する最後のステップは、まずsystemd次のコマンドを実行してサービスを開始することです。

$ sudo systemctl start vncserver@:1 

systemd次に、次のコマンドでサービスが正常に開始されたことを確認します。

$ sudo systemctl status vncserver@:1

サービスが開始されたことを確認したら、systemdポートを使用してIPアドレスに接続しようとします5901

すべてがうまくいったら、systemd起動中にサービスが開始されるようにサービスを有効にしました。

$ sudo systemctl enable vncserver@:1

この情報が他の人に役立つことを願っています。

関連情報