我已经在云中的无头 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 start
或sudo 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
。来源