amorfait 2009-05-14
在现实工作中,系统工程师往往会遇到企业员工各种各样的需求。前段时间,就有企业向笔者提出,要求某个应用程序在服务器上运行,但是结果却要在异地的客户端上显示。如下图所示,员工可以通过网络向Unix服务器的某个应用软件发送相关的参数。然后服务器利用这个软件进行相关的计算与处理。等到有结果后,再把相关的结果发送到客户端。如有些应用软件可能计算分析的时间比较长,员工无法在那边等待结果。为此他们就希望服务器把结果运算出来后就直接返回到他们的客户端,他们就可以不用在服务器旁边等着出结果了。
一、通过X客户端来解决这个需求。
在Unix操作系统中提供了一个叫做X客户端的程序。它本来是一个仿Windows的管理环境,但是功能却比其要强的多。如其在网络上运行就比Windows系统要出色的多。为什么这么说呢?这主要是因为X客户端程序可以在一个终端上运行一个客户端程序,而在另一个终端上输出它的运行结果。也就是说,X客户端程序可以让应用软件的计算结果重定向到另外一个客户端中。这对于控制运行结果的显示具有非常大的作用。如通过这个X客户端程序,本文一开始提到的用户需求就引刃而解了。
那么该如何实现呢?一般情况下,需要在客户端与服务器端分别进行设置。下面笔者就对这些设置过程进行详细的阐述,以帮助大家以后有需要时能够参考这篇文章顺利实现这个配置。
二、接收客户端的相关配置。
假设现在有一个复杂的密码破解器。由于版权、安全或者服务器性能方面的限制,其只能够运行在一台特定的主机上面。其他员工需要使用这个软件的话,必须到这个服务器上去运行。但是由于运行的时间比较长,为此员工也不可能在服务器旁边等待。为此就必须在一个远程计算机上运行这个客户端程序,然后把结果返回到本地的主机上。但是并不是所有的主机都可以接受到这个结果。如果有些员工搞恶作剧,把一些不雅的内容通过这个X客户端重续输出到所有的本地电脑上,那么就会引起员工的不满。为此系统工程师必须先在本地客户端上进行设置,让其允许接收来自于其他主机的输出结果。
也就是说本地服务程序必须允许其他的计算机在本地的显示终端上输出结果。要实现这个目的的话,就需要采用xhost命令。如可以在本地客户端上运行xhost +server1命令。就表示运行主机名字为server1的上的任何用户都可以往这台客户端上输出运行结果。注意,客户端在判断是否允许其他主机往本机上输出运行结果,其标准是主机的名字,而不是用户名。如允许server1主机向本地输出结果的话,则如果这台主机上设置有20个用户名,则都允许其向本机输出结果。这一点系统工程师在具体配置的时候,一定要注意。另外如果采用xhost +命令,即没有在+号后面跟主机名字的话,则表示允许任何远程机器往这台主机上输出运行结果。如果以后要取消这个设置的话也很简单,如只需要采用xhost –命令就可以取消相关的设置。