通过XManager访问Solaris建立连接并登陆系统后启动一个java程序,然后关闭XManager结束X Window Session,这时候刚才启动的java程序也跟着结束了。如果我想在关闭XManager后java程序能够继续运行,该如何设置?
bloomit 回复于:2007-01-12 14:19:21
写个脚本,在java程序后加&,使其在后台运行
SeeaMonster 回复于:2007-01-12 14:33:41
引用:原帖由 bloomit 于 2007-1-12 14:19 发表
写个脚本,在java程序后加&,使其在后台运行
试过了,好像不行
tychj 回复于:2007-01-12 14:40:19
nohup ×.sh &
SeeaMonster 回复于:2007-01-12 15:32:02
引用:原帖由 tychj 于 2007-1-12 14:40 发表
nohup ×.sh &
试过,程序启动后可以重新回到命令输入状态,但exit并关闭XManager后,启动的java程序一样停止了运行。
hangzhou_joe 回复于:2007-01-12 15:55:06
关注
SeeaMonster 回复于:2007-01-12 16:15:57
查了一下,好像论坛里类似的问题都没有解决!
Barrfee 回复于:2007-01-12 16:29:40
大致明白了楼主的问题,可能需要xwindows,而且xwindows不能停。否则应用运行异常。我见过应用的开发商搞这个问题,最后还是从应用那边着手把问题搞定了,solaris没有办法满足你的要求。
SeeaMonster 回复于:2007-01-12 16:37:40
引用:原帖由 Barrfee 于 2007-1-12 16:29 发表
大致明白了楼主的问题,可能需要xwindows,而且xwindows不能停。否则应用运行异常。我见过应用的开发商搞这个问题,最后还是从应用那边着手把问题搞定了,solaris没有办法满足你的要求。
我想你确实明白我的问题了,不知道他们怎么搞定的?
SeeaMonster 回复于:2007-01-15 15:53:17
问题还没解决,再顶顶。
或许这个问题可以换种说法:怎么能让我的程序作为unix server上的一个service运行,而不依赖于XManager?
SeeaMonster 回复于:2007-01-16 10:05:08
问题解决了,这个主要跟java有关,在运行时加-Djava.awt.headless=true然后在命令行执行:
nohup *.sh &
就可以了。
相关知识:
对于一个Java服务器来说经常要处理一些图形元素,例如地图的创建或者图形和图表等。这些API基本上总是需要运行一个X-server以便能使用AWT(Abstract Window Toolkit,抽象窗口工具集)。然而,运行一个不必要的X-server并不是一种好的网络管理方式。
这个解决方案依赖于你的Java版本。如果你运行在JDK1.4上,那么你将有机会运行headless服务器。
-Djava.awt.headless=true
对于JDK1.3及更低的版本,有个来自eTeks的PJA工具包(Pure Java AWT Toolkit,纯Java AWT工具集)可以使用。它是一个在配置上与Sun的1.4版非常相似的headlessJava服务器,这种配置方式包含一组-D属性标志。
你需要下载相关的jar,将它们放到你的CLASSPATH中,然后设置下面的标志:
Dawt.toolkit=com.eteks.awt.PJAToolkit
Djava.awt.graphicsenv=com.eteks.java2d.PJAGraphicsEnvironment
在IBM的JDK下,你能找到下列所需的属性,这里我们将PJA的jar要放到lib/pja下:
Djava.awt.fonts=$JAVA_HOME/jre/lib/fonts
Djava2d.font.usePlatformFont=false
Duser.home=lib/pja
你可以从eTeks网站上下载PJA工具包。
译者注:在JDK1.4的新特性的AWT中提到 headless支持是指在图形环境下是否支持显示器、鼠标和键盘,详细内容可以参考Sun的网站的headless支持。
jobandmiss 回复于:2007-01-16 10:20:15
不错!!顶一下!!!
东方蜘蛛 回复于:2007-01-16 10:36:24
不错,建议版主设成保留,方便以后查找:)
风之幻想 回复于:2007-01-16 15:56:19
谢谢楼主的分享.顶!!
|