在Fedora 22下安装配置RealVNC Server 5.2.3的经验总结(2)

这样的命令查看一些详细的参数说明。还可以通过运行vncviewer,在图形化客户端里面,通过配置界面(好像是“高级”部分)看到几乎所有能够支持的参数名字以及值。

 

这里还要特别说明一点,在Fedora 22上安装RealVNC Server并配置好所有参数后,发现Server模式无法启动,监听端口起不来。最后想了很多费劲的办法查阅官方文档,才知道这是一个兼容性的问题,由于Fedora 22的Xorg服务器版本很高,估计兼容性方面让RealVNC Server出了问题,找不到正在运行的X服务器。解决办法是(原文,我就不翻译了,反正也很简单,看得懂):

 

The X server on Fedora 22 is not in the XServerBinaries VNC parameter list. If /usr/libexec/Xorg is added to the list VNC Server starts as expected. 

 

Edit (or create if it doesn't exist) /etc/vnc/config.d/vncserver-x11-serviced and add the following line:

 

XServerBinaries=/usr/libexec/Xorg

 

这里说明一下,/etc/vnc/config.d/vncserver-x11-serviced是官方文档中说明的vncserver-x11-serviced的配置文件路径,文档中确实是说了的,通过man vncserver-x11-serviced命令查看其手册也是会有说明的。

 

补充说明(非常重要):

 

以下补充说明内容非常重要!在Fedora 22中,由于开始向Wayland显示服务器过渡,GDM登录管理器默认是使用wayland的,如果你使用RealVNC的Server模式,这会导致vncserver-x11-serviced启动后找不到X服务器,从而引起vncserver-x11-core运行失败,监听端口起不来!导致你无法用VNC远程连接到主机进行GDM用户登录!因此,要修改GDM的配置,让其默认使用X服务器而不是Wayland。方法是修改/etc/gdm/custom.conf文件,找到里面的

 

#WaylandEnable=false

 

这一项,把前面的#去掉,保存好后重启机器即可生效。这时你会发现,你可以用VNC远程到主机并显示GDM登录界面了,但别高兴太早!当你选择某个用户账号并成功登录后,你会发现VNC连接断开了。这时,通过进程查看发现,vncserver-x11-core变成了僵尸进程,停止了工作,导致监听端口宕掉了。而这时你会发现主机上登录进去的桌面环境会话又启动了一个Xorg服务,而GDM登录界面使用的那个Xorg服务也仍然存在。这可能是导致RealVNC的vncserver-x11-core无法判别到底使用哪个Xorg服务从而引起僵死。我们知道,GDM必须要使用一个Xorg以便用于显示登录界面会话,而Fedora 22之前的老版本Linux估计是让登录后进入的桌面会话使用与GDM相同的Xorg,所以RealVNC是能够正常工作的。而现在Fedora 22在逐渐向Wayland过渡,导致出现GDM和登录进去的桌面会话分别使用各自独立的Xorg进程,引起RealVNC兼容性问题。没有关系,我们换个思路,如果登录进入桌面环境后,让当前登录的账户启动一个在用户模式下工作的vncserver-x11进程就能够解决问题了,连监听端口都不用换!通过试验也证实了,当这个桌面会话用户在主机注销后,vncserver-x11用户模式进程随机销毁,而使用先前GDM登录会话的对应的Xorg服务的那个vncserver-x11-serviced连带启动的vncserver-x11-core僵尸进程又重新恢复正常监听了!这样就可以保证远端主机仍然可以通过VNC客户端远程连接上来并显示GDM登录界面!

 

那么,现在就要解决一个问题,如何让主机在登录成功进入GNOME桌面后自动执行我们自定义的脚本?很简单,在主机登录账户的家目录下输入如下命令:

 

$ cd ~/.config/autostart

$ vi autostart.desktop

 

进入vi编辑环境,输入如下内容:

 

[Desktop Entry]

Name=autostart

Comment=Desktop Session Autostart

Exec=/usr/local/bin/autostart

Terminal=false

Type=Application

StartupNotify=true

X-GNOME-FullName=Desktop Session Autostart

 

保存并退出vi,然后切换到root,输入如下命令:

 

# cd /usr/local/bin

# vi autostart

 

进入vi编辑环境,输入如下内容:

 

#!/bin/bash

echo "desktop session autostart" > ~/autostart.log

/usr/local/bin/vncserver-x11 -stop

/usr/local/bin/vncserver-x11 -display :1 &

 

保存并退出vi,输入命令:

 

# chmod 755 /usr/local/bin/autostart

 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/9b683a672aa7e21c0f5695b9490615f3.html