为什么 vncserver 从服务运行时会失败,从终端启动时可以正常工作

为什么 vncserver 从服务运行时会失败,从终端启动时可以正常工作

为什么 vncserver 从服务运行时会失败?我在 Linux 机器(Ubuntu 20.4)上使用 TigerVNC 和 noVNC 设置了 VNC。从终端启动时,它运行正常,但我想从服务启动它,以便它可以在启动时自动启动,但它不起作用

我的服务文件名'[电子邮件保护]' 位于 /etc/systemd/system 如下所示

[Unit]
Description = VNC server
After=syslog.target network.target

[Service]
Type=forking
User=taisafmr15

ExecStartPre=-/usr/bin/vncserver -kill :2
ExecStart=/usr/bin/vncserver :2 -geometry 1600x900 -depth 24 -localhost no
ExecStop=/usr/bin/vncserver -kill :2

[Install]
WantedBy=multi-user.target

我可以使用启用我的服务

sudo systemctl enable [email protected]

并且它启动时没有任何错误,与启动它时一样

sudo systemctl start [email protected]

但是我的 vnc 服务器没有启动,正在运行

sudo systemctl status [email protected]

显示它失败了(代码=exited,状态=255 / EXCEPTION)查看日志显示它在 ExecStart 上失败并且我看到的唯一错误代码/消息是这个(代码=exited,状态=255 / EXCEPTION)

但是,当我从我的终端正常运行该命令时,我的 vnc 服务器启动正常,只是不是从服务启动,

挣扎了好几天任何帮助/建议都会有帮助

编辑:我的 xstartup 文件位于 ~/.vnc/xstartup

#!/bin/sh
[-x /etc/vnc/xstartup] && exec /etc/vnc/xstartup
[-r $HOME/.Xresources] && xrdb $HOME/.Xresources

我的 xstartup 文件位于 /etc/vnc/xstartup

#!/bin/sh
export DISPLAY=:2
test x"$SHELL" = x"" && SHELL=/bin/bash
test x"$1"     = x"" && set -- default

vncconfig -iconic &
"$SHELL" -l << EOF
export XDG_SESSION_TYPE=x11
export XDG_DATA_DIRS=/usr/share/ubuntu:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop
export XDG_CONFIG_DIRS=/etc//xdg-ubuntu:/etc/xdg
export XDG_CURRENT_DESKTOP=ubuntu:GNOME
export DESKTOP_SESSION=/usr/share/xsessions/ubuntu.desktop
export GNOME_SHELL_SESSION_MODE=ubuntu
dbus-launch --exit-with-session /usr/bin/gnome-session --session=ubuntu
EOF
vncserver -kill $DISPLAY

两个 xstartup 文件均具有以下权限

sudo chmod +x /etc/vnc/xstartup
sudo chmod 777 /etc/vnc/xstartup

完整错误消息

vncserver[7143]: Thu Apr 13 16:26:40 2023
vncserver[7143]:  ComparingUpdateTracker: 0 pixels in / 0 pixels out
vncserver[7143]:  ComparingUpdateTracker: (1:-nan ratio)
vncserver[7143]: Killing Xtigervnc process ID 6921... which seems to be deadlocked. Using SIGKILL!

vncserver[6912]: Starting applications specified in /home/tai79/.vnc/xstartup has failed.
vncserver[6912]: Maybe try something simple first, e.g.,
vncserver[6912]:         tigervncserver -xstartup /usr/bin/xterm
systemd[1]: [email protected]: Main process exited, code=exited, status=255/EXCEPTION
systemd[1]: [email protected]: Failed with result 'exit-code'.

尝试更改 xstartup 文件,使用不同的桌面环境等

相关内容