我的用户的 crontab 包含:
@reboot sleep 60 && /home/mslinn/.local/bin/vncserver4 >/dev/null 2>&1
/home/mslinn/.local/bin/vncserver4
:
#!/bin/bash
rm -f /tmp/.X4-lock
rm -f /tmp/.X11-unix/X4
vncserver :4 -depth 24 -geometry 3840x2160
~/.vnc/xstartup
:
#!/bin/sh
# Change "GNOME" to "KDE" for a KDE desktop, or "" for a generic desktop
MODE="GNOME"
#Uncommment this line if using Gnome and your keyboard mappings are incorrect.
#export XKL_XMODMAP_DISABLE=1
# Load X resources (if any)
if [ -e "$HOME/.Xresources" ]
then
xrdb "$HOME/.Xresources"
fi
# Try a GNOME session, or fall back to KDE
if [ "GNOME" = "$MODE" ]
then
if which gnome-session >/dev/null
then
gnome-session --session=ubuntu-2d &
else
MODE="KDE"
fi
fi
# Try a KDE session, or fall back to generic
if [ "KDE" = "$MODE" ]
then
if which startkde >/dev/null
then
startkde &
else
MODE=""
fi
fi
# Run a generic session
if [ -z "$MODE" ]
then
xsetroot -solid "#DAB082"
x-terminal-emulator -geometry "80x24+10+10" -ls -title "$VNCDESKTOP Desktop" &
x-window-manager &
fi
$ ps aux|grep [g]nome
mslinn 1064 0.0 0.0 397064 8004 ? SLl Jul13 0:00 /usr/bin/gnome-keyring-daemon --daemonize --login
mslinn 1104 0.0 0.0 171112 6224 tty2 Ssl+ Jul13 0:00 /usr/libexec/gdm-x-session --run-script env GNOME_SHELL_SESSION_MODE=ubuntu /usr/bin/gnome-session --session=ubuntu
mslinn 1206 0.0 0.0 231768 15112 tty2 Sl+ Jul13 0:00 /usr/libexec/gnome-session-binary --session=ubuntu
mslinn 1305 0.0 0.0 100556 4992 ? Ssl Jul13 0:00 /usr/libexec/gnome-session-ctl --monitor
mslinn 1317 0.0 0.0 732780 17352 ? Ssl Jul13 0:00 /usr/libexec/gnome-session-binary --systemd-service --session=ubuntu
mslinn 1340 1.5 0.9 3976100 299252 ? Ssl Jul13 102:51 /usr/bin/gnome-shell
mslinn 1405 0.0 0.0 583104 20208 ? Sl Jul13 0:00 /usr/libexec/gnome-shell-calendar-server
mslinn 1481 0.0 0.0 2940440 29280 ? Sl Jul13 0:00 /usr/bin/gjs /usr/share/gnome-shell/org.gnome.Shell.Notifications
mslinn 1483 0.0 0.0 162816 7152 ? Sl Jul13 0:00 /usr/libexec/at-spi2-registryd --use-gnome-session
mslinn 1619 0.0 0.1 711464 45248 ? Ssl Jul13 0:00 /usr/libexec/xdg-desktop-portal-gnome
mslinn 1722 0.0 0.0 2948104 27208 ? Sl Jul13 0:00 /usr/bin/gjs /usr/share/gnome-shell/org.gnome.ScreenSaver
mslinn 562376 0.1 0.3 1231980 118068 ? SLl 00:21 0:03 gnome-control-center
检查是否使用了 Wayland。
方法一:
检查vnc日志文件,搜索如下警告。
(xfwm4:xxx): Gtk-WARNING **: x:x:x.x: cannot open display: wayland-0
方法二:
运行
loginctl
以列出所有会话 ID。loginctl show-session <ID> -p Type
验证会话类型。
禁用 Wayland
sudo vi /etc/gdm3/custom.conf
.WaylandEnable=false
。安装X11
sudo apt update
sudo apt install xorg openbox
重启
sudo reboot
运行
loginctl
,然后运行 loginctl show-session <ID> -p Type
再次验证。
再次启动VNCServer。
RealVNC 不支持 Ubuntu 22.04 默认使用的 Wayland,因此您需要按照下面 RealVNC 的 Ubuntu 说明禁用它:
“不支持 Wayland,因此如果远程计算机运行的是 Ubuntu 18.04 LTS+,请编辑 /etc/gdm3/custom.conf 文件,取消注释 WaylandEnable=false,然后重新启动,以便远程访问登录屏幕。”
您还需要安装以下软件包: xfce4 xfce4-好东西紧密vncserver
最后,您需要在 ~/.vnc/xstartup.kept 的末尾添加以下行: 启动xfce4 &