TigerVNC 作为 22.04 无头 Ubuntu 服务器中的服务无法启动

TigerVNC 作为 22.04 无头 Ubuntu 服务器中的服务无法启动

我已经在云中的无头 Ubuntu 22.04 服务器上设置了 TigerVNC,因此无头。

发射

vncserver

因为我的 sudo 用户工作正常,并且我可以通过 SSH 隧道连接(虽然我无法启动浏览器,这是另一个问题)。

这些是我的启动文件:

#!/bin/sh

test x"$SHELL" = x"" && SHELL=/bin/bash
test x"$1"     = x"" && set -- default

vncconfig -iconic &
"$SHELL" -l << EOF
export XDG_SESSION_TYPE=x11
export GNOME_SHELL_SESSION_MODE=ubuntu
dbus-launch --exit-with-session gnome-session --session=ubuntu
EOF
vncserver -kill $DISPLAY

这是/etc/systemd/系统/[电子邮件保护]

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

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

[Install]
WantedBy=multi-user.target

申请sudo service vncserver@1 startsudo systemctl start vncserver@1

Syslog 记录以下内容:

Oct 16 12:03:25 server systemd[1]: Starting Start TigerVNC server at startup...
Oct 16 12:03:25 server systemd[1]: Started Session 25 of User user.
Oct 16 12:03:25 server vncserver[3049]: vncserver: Option 2>&1: Unrecognized!
Oct 16 12:03:25 server vncserver[3049]:   For further help, consult the vncserver(1) and Xtigervnc(1) manual pages.
Oct 16 12:03:25 server systemd[1]: [email protected]: Control process exited, code=exited, status=1/FAILURE
Oct 16 12:03:25 server systemd[1]: [email protected]: Failed with result 'exit-code'.
Oct 16 12:03:25 server systemd[1]: Failed to start Start TigerVNC server at startup.
Oct 16 12:03:25 server systemd[1]: session-25.scope: Deactivated successfully.

我怀疑最新版本的软件的工作方式已经发生了变化,但我希望对此事有一些了解。

答案1

您正在使用适用于 Ubuntu 20.04 的服务文件,但对于 Ubuntu 22.04 来说它需要略有不同。

这应该有效:

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

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

[Install]
WantedBy=multi-user.target

PIDFile请注意和行的变化ExecStartPre来源

相关内容