Linux下远程启动SuperMap iServer Java 2008的问题
如题,问题很简单,就是用图形化界面xmanager或者vnc的远程桌面控制启动SuperMap iServer Java 2008服务后,关闭图形化界面,服务也会停止;而如果采用PUTTY等客户端工具启动服务,则是出现报错,类似ugcXEngine.so的错误,服务无法启动。
针对这样的问题如何解决?
先看看采用console类型的客户端下如何远程启动。启动前必须确保启动iServer的基本环境变量都已经配置完好,没有缺少各种依赖项。然后在当前用户下输入:
nohup X :n&(n为任意正整数,在第n个屏幕上启动XServer,&表示为后台程序,nohup表示当前终端退出,不挂起进程)
export DISPLAY=:n.0(n为连接端口,也为任意正整数)
然后启动服务,关闭客户端即可。
而如果采用xmanager或者vnc的话,则需要修改start.sh如下:
nohup ..\thirdparty\jdk\bin\java -cp Server.jar com.supermap.server.Manager -start -checkProcess &
再在当前用户下输入命令:
nohup X :n&
export DISPLAY=:n.0
然后启动服务,关闭客户端即可。
那么究竟X是什么,为什么会这样来设置呢?
X是用在大多数UNIX系统中的图形支持系统。如果你在你的Linux机器上使用GNOME或者KDE的话,你就正在使用X系统。它由X联盟(http://www.x.org/)定义并维护。大多数的Linux用户使用的都是由XFree86 项目 (http://www.xfree86.org/)提供的X Window系统的实现。xdm 是一个显示管理器,提供了灵活的任务管理功能。然而xdm通常被认为是“GUI的登陆屏幕,可以自动启动我的X任务”。
在Linux/Unix类操作系统上,DISPLAY用来设置将图形显示到何处。直接登陆图形界面或者登陆命令行界面后使用startx启动图形, DISPLAY环境变量将自动设置为:0:0, 此时可以打开终端, 输出图形程序的名称(比如xclock)来启动程序, 图形将显示在本地窗口上。DISPLAY环境变量格式如下host:NumA.NumB, host指Xserver所在的主机主机名或者ip地址,图形将显示在这一机器上,可以是启动了图形界面的Linux/Unix机器,也可以是安装了Exceed, X-Deep/32等Windows平台运行的Xserver的Windows机器。 如果Host为空, 则表示Xserver运行于本机,并且图形程序(Xclient)使用unix socket方式连接到Xserver,而不是TCP方式。 使用TCP方式连接时, NumA为连接的端口减去6000的值, 如果NumA为0,则表示连接到6000端口;使用unix socket方式连接时则表示连接的unix socket的路径, 如果为0, 则表示连接到/tmp/.X11-unix/X0 . NumB则几乎总是0。
It's all.