我有一个Hudson作业,它启动一个.bat
脚本文件,它本身也会启动我的Jonas应用服务器以及其他一些任务。
脚本在我的奴隶上从Hudson正确启动,然后我的应用程序服务器启动,但是当我的Hudson作业结束时,应用程序服务器被终止。这是因为在此过程中启动的所有进程共享相同的管道(stdin / sdtout / stderr),如此处所述http://wiki.hudson-ci.org/display/HUDSON/Spawning+processes+from+build。
正如您已经了解的那样,这真的不是我想要的!实际上我有另一个Hudson工作,就在我上面描述的工作之后启动,以测试我的应用程序。因此,当我的应用程序服务器在Hudson作业结束的同一时间被杀死时,我的测试根本无法运行......
那我怎么解决这个问题呢?
这个问题与Hudson启动脚本的事实严格相关,如果我从命令行启动相同的脚本,根本不会发生问题......
在上面给出的链接中,他们建议使用“at”命令,该命令允许在Windows中安排任务。我真的不想使用这个解决方案,因为这意味着我的.bat脚本中的修改,因为我从Hudson启动它。
先谢谢你的帮助!
答案 0 :(得分:2)
尝试使用START
命令启动应用程序服务器。 This网站提供了一些使用示例。我想你必须做一些关于正确参数的实验,但你的第一次尝试应该是:
START "appServer" "[path to your application server]\applicationServer.exe"
答案 1 :(得分:2)
此处的最佳做法是清除环境变量BUILD_ID。在构建作业之后进行清理时,Hudson会查看每个进程中的BUILD_ID环境变量,以消除任何延迟进程。因此,通过清除该环境变量,Hudson不会终止该进程。