本文将讨论如何配置一个X服务器,显示管理器和一个VNC服务器,使得可以直接登录到VNC桌面,而不需要再启动一个窗口管理器,并且在离开时保持所有的文件和应用程序状态直到下次登录。
前提
我们这里讨论的情况可以应用于在任何Linux发行版中。但是需要一个可以运行的X服务器,一个显示管理器和VNC。我们可以使用下面的命令来测试前提条件:
rpm -q XFree86 vnc XFree86-xdm kdebase gdm
只要保证安装有XFree86-xdm kdebase或gdm就可以了。我们这里讨论的所有配置文件存放位置都是以redhat7.1为标准。当然可以配置任何Linux系统来使用通明VNC桌面,但是文章中讨论的配置文件可能会在不同的位置。
无论你喜欢采用任何显示管理器,它都应该在系统启动时启动。一般都是在/etc/inittab文件中配置如下内容:
x:5:respawn:/etc/X11/prefdm -nodaemon
prefdm一般都是一个指向你希望采用的显示管理器的一个符号连接。X和你喜欢的显示管理器必须保证启动和运行。
配置VNC服务器
VNC服务器同样也必须在运行,同时也要配置VNC服务器运行你喜欢的窗口管理器。这通过编辑文件$HOME/.vnc/xstartup来启动你喜欢的窗口管理器。使用startkde &来启动KDE,使用gnome-session &来启动GNOME,fvwm2 &来启动FVWM2。同时要,确保在$HOME/.vnc/passwd中启动vncpasswd 来创建密码文件。
RedHat7.1提供了一些简单的方法在系统启动时来启动VNC。使用linuxconf来设置vncserver启动脚本(/etc/init.d/vncserver)实现系统自启动时启动vncserver。但是默认的启动脚本灵活性不够,因此编辑/etc/init.d/vncserver,修改:
"su - ${display##*:} -c "cd && [ -f .vnc/passwd ]
&& vncserver {display%%:*}""

为:
"su - ${display##*:} -c "cd && [ -f .vnc/passwd ]
&& vncserver ${ARGS} {display%%:*}""

然后编辑/etc/sysconfig/vncservers:
# The VNCSERVERS variable is a list of
# display:user pairs.
#
# Uncomment the line below to start a VNC server on
# display :1 as my 'myusername' (adjust this to your
# own). You will also need to set a VNC password;
# run 'man vncpasswd' to see how to do that.
#
# DO NOT RUN THIS SERVICE if your local area network
# is untrusted! For a secure way of using VNC, see
# <URL:
http://www.uk.research.att.com/vnc/sshvnc.html>;.
VNCSERVERS="1:jdimpson"
ARGS="-geometry 1024x768 -alwaysshared "
在ARGS中修改"1024x768"来适应自己的X桌面实际参数配置。可以在这里添加任何其他VNC服务器参数配置。在VNCSERVERS中修改jdimpson为你希望运行VNC桌面的用户。VNCSERVERS中的1表示VNC以桌面1运行,如果希望添加其他的桌面,可以修改配置如下:
VNCSERVERS="1:jdimpson 2:phred 3:sysadmin"
在RedHat系统上,使用以下命令启动VNC:
/etc/init.d/vncserver start
现在你就可以使用VNC任何客户端来使用VNC桌面。
配置显示管理器
在我的Red Hat 7.1系统中,我创建了名为$HOME/.xsession的文件。这个文件用来设定当通过显示管理器时应该运行哪个窗口管理器。当登录进入时,显示管理器检测这个配置文件。如果该文件存在,显示管理器将运行该文件中设定的程序。显示管理器认为该文件包含有启动用户希望的窗口管理器程序的命令。不是运行GNOME或KDE这样的窗口管理器,然而我们将运行VNC客户端。编辑$HOME/.xsession为如下:
exec vncviewer -passwd $HOME/.vnc/passwd
-fullscreen localhost:1
如果你使用的是其他的linux发行版,那么文章的说明可能同样适合你。一个快速检测的方法是在该文件中添加如下命令:
exec fvwm2
当登录到显示管理器,如果fbwm2成功启动,那么表示你成功了。如果没有成功启动,那就需要察看系统文档。
登录
登录到显示管理器的登录窗口。你将可以看到你喜欢的桌面。
当你通过显示管理器登录到服务器,它将被你选择的运行在VNC服务器的窗口管理器所替代。如果在网络中有其他的计算机,那么可以试一试使用客户端连接服务器。那么你就可能看到两个桌面。当使用一个计算机移动一个窗口,你可以看到在另外的计算机上的窗口同样在移动。
在登录到显示服务器以后,如果显示屏闪烁以后,重新出现登录界面,那么说明出现了错误。首先确保VNC服务器在运行和.xsession文件配置是正确的。
应该注意的是在设置中你不应该使用任何退出窗口管理器的登录特性。这样将终止VNC桌面,这可能不是你希望的结果。这时使用Ctrl-Alt-Backspace来杀除X服务器,显示管理器返回到屏幕。如果你重新登录,你将进入到你刚才离开的环境,因此你可以将控制台给别的用户使用,而不丢失你的桌面状态。
系统原理
当服务器启动时,它将为在文件/etc/sysconfig/vncservers中定义的每个用户运行VNC服务器。当VNC启动时将读取用户主目录的.vnc/xstartup文件,并使用它运行你希望的窗口管理器。然后VNC服务器就等待连接请求。
5499aa.jpg (2.69 KB)
下载次数:7
2005-08-16 13:35