CentOS 下 VNC 一连接就闪退 / 启动后马上退出,常见原因和排查思路如下(按出现频率排序):
VNC 启动后会执行 ~/.vnc/xstartup,如果里面指定的桌面环境不存在,就会立刻退出。
检查:
cat ~/.vnc/xstartup
常见正确示例(CentOS 7):
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec gnome-session &
或:
exec startxfce4 &
确认桌面是否安装:
rpm -qa | grep gnome
rpm -qa | grep xfce
没有就装:
yum groupinstall "GNOME Desktop"
# 或
yum groupinstall "Xfce"
~/.vnc/xstartup 没有执行权限chmod +x ~/.vnc/xstartup
如果是 vncserver@:.service 方式:
vim /etc/systemd/system/vncserver@:1.service
确认:
User=你的用户名
然后:
systemctl daemon-reload
systemctl restart vncserver@:1.service
cat ~/.vnc/主机名:1.log
常见错误:
command not foundcannot open displaygnome-session: not found临时关闭测试:
setenforce 0
如果好了:
vim /etc/selinux/config
SELINUX=permissive
firewall-cmd --add-port=5901/tcp --permanent
firewall-cmd --reload
vncserver :1
推荐:
vncserver :1
或 systemd 管理
如果你愿意,可以贴:
xstartup 内容我可以直接帮你定位到具体哪一行导致闪退。