我在我的 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]
显示它失败(code=exited,status=255/EXCEPTION)查看日志,它显示它在 ExecStart 上失败,我看到的唯一错误代码/消息是这个(code=exited,status=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]:2023 年 4 月 13 日星期四 16:26:40 vncserver[7143]:ComparingUpdateTracker:0 像素输入/0 像素输出 vncserver[7143]:ComparingUpdateTracker:(1:-nan 比率)vncserver[7143]:正在杀死 Xtigervnc 进程 ID 6921...这似乎陷入了僵局。使用 SIGKILL!
vncserver[6912]:启动 /home/tai79/.vnc/xstartup 中指定的应用程序失败。 vncserver[6912]:也许首先尝试一些简单的方法,例如 vncserver[6912]:tigervncserver -xstartup /usr/bin/xterm systemd[1]:[电子邮件受保护]:主进程退出,code=exited,status=255/EXCEPTION systemd[1]:[电子邮件受保护]:失败,结果为“退出代码”。