我使用Hudson进行CI和重启Glassfish服务器。这很方便,因为不需要ssh访问。
使用shell命令执行简单的hudson作业:
cd /opt/glassfish3/glassfish/bin;
./asadmin start-domain domain1;
但是从某个时候开始(不记得什么时候)这很奇怪:作业一直挂起,直到启动程序结束并退出,日志中没有例外:
[#| 2011-09-07T02:36:06.280 + 0400 | INFO | glassfish3.1 | javax.enterprise.system.core.com.sun.enterprise.v3.server | _ThreadID = 1; _ThreadName = Thread- 1; | GlassFish Server开源版3.1(43)启动时间:Felix(3,022ms),启动服务(38,884ms),总计(41,906ms)|#]
但GF实际上还没有开始!系统中没有这样的过程!所以我必须从ssh控制台手动执行相同的操作......似乎一旦hudson作业完成,GF的过程就完成了。
谢谢,安东
答案 0 :(得分:1)
也许哈德森的行为在改变过程中发生了变化。 您还可以在嵌入模式下启动GlassFish(进程内):http://embedded-glassfish.java.net/nonav/apidocs/,http://weblogs.java.net/blog/bhavanishankar/archive/2011/03/02/quick-introduction-embeddability-glassfish-open-source-edition-31 或使用:
java -jar glassfish/modules/glassfish.jar
(请注意,如果只配置了一个域,则可以省略域名。)
答案 1 :(得分:0)
找到答案。还有其他一些方法,但最简单的方法是非常好玩:)。只需使用env变量:
BUILD_ID=dontKillMe
就是这样!这告诉Jenkins不要完成这项工作所启动的流程。 作为设置这些变量的插件,我使用Jenkins Environment Inject Plug-in
希望这会对其他人有所帮助。
答案 2 :(得分:0)
解决问题的另一种方法是在jenkins的开头添加以下行。
java -Dhudson.util.ProcessTreeKiller.disable = true -jar jenkins.war