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

这本身可能不是答案,但我根据从以下两个来源找到的信息找到了我需要的更简单的实现,所以我想我会分享:

  1. 如何在红帽企业 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

将文件复制到正确的目录后,我使用以下两行对其进行了修改:

Restart=on-success
RestartSec=15

我添加这两行的原因是我注意到,如果您在使用 VNC 会话时注销桌面环境,它实际上会停止systemd服务文件。这些附加行将检查这一点,然后在 15 秒后重新启动服务。

最后采取的步骤是首先systemd通过执行以下命令启动服务:

$ sudo systemctl start vncserver@:1 

systemd然后我通过命令检查服务是否已成功启动:

$ sudo systemctl status vncserver@:1

确认systemd服务已启动后,我尝试使用端口连接到 IP 地址:5901

当我对一切感到满意后,我启用了该systemd服务,以便它在引导期间启动:

$ sudo systemctl enable vncserver@:1

我希望这些信息对其他人有帮助。

相关内容