2009-10-02 41 views
1

我有一个Hudson作业,它启动了一个.bat脚本文件,它自己启动我的Jonas应用程序服务器以及一些其他任务。从.bat启动独立进程

从我的奴隶哈德森正确启动脚本,然后我的应用程序服务器启动,但此时我的哈德森工作结束应用程序服务器被终止。这是由于在此过程中启动的所有进程共享相同的管道(stdin/sdtout/stderr),因为此处解释为http://wiki.hudson-ci.org/display/HUDSON/Spawning+processes+from+build

正如你已经明白,这真的不是我想要的!其实我有另一个哈德森的工作,是在我上面描述的测试我的应用程序之后发布的。因此,由于我的应用程序服务器在哈德森工作结束的同时死亡,我的测试根本无法运行...

那么我该如何解决这个问题?

这个问题是严格挂钩的事实,这是哈德森是启动脚本,如果我在命令行启动相同的脚本不会出现在所有的问题...

在上面给出的链接他们建议使用允许在Windows中安排任务的“at”命令。我真的不想使用这个解决方案,因为这意味着我的.bat脚本中的修改,因为我从哈德森启动它。

  • 我想有一种方法告诉我的bat文件,“确定你要启动我的应用程序服务器,但在一个独立的过程。”你们知道如何做到这一点?
  • 也许哈德森能解决这个问题吗?你哈德森的家伙知道吗?

在此先感谢您的帮助!

回答

2

这里最好的做法是清除环境变量BUILD_ID。在构建作业之后清理时,Hudson会在每个进程中查看BUILD_ID环境变量,以消除任何延迟的进程。所以通过清除这个环境变量,Hudson不会杀死这个进程。

+0

感谢您的输入!我看到你是你的个人资料中的哈德森大师;) 我应该清除BUILD_ID变量还是应该将其设置为BUILD_ID = dontKillMe,正如我在链接http://wiki.hudson-ci.org/display/上看到的那样HUDSON /产卵+ + +从构建过程? – reef 2009-10-02 14:34:35

+0

哈德森错误报告https://hudson.dev.java.net/issues/show_bug.cgi?id=3105。 – reef 2009-10-02 14:55:46

+0

将Hudons中的BUILD_ID环境变量设置为dontKillMe可以正常工作,但正如所报告的错误(上面的链接)中所述,这是一种解决方法。修正错误后,我会发布解决方案。 谢谢! – reef 2009-10-02 15:07:58

2

尝试使用START命令启动您的应用程序服务器。 This网站提供了一些使用示例。我猜你必须做对正确的参数一些实验,但你的第一次尝试应该是:

START "appServer" "[path to your application server]\applicationServer.exe" 
+0

在这个特定的上下文中,这个解决方案是不够的,因为所有东西都与Hudson中的错误相关联(请参阅前面的注释)。但是在一个没有错误的情况下,这似乎是解决方案;) 谢谢! – reef 2009-10-02 15:22:19

+0

让我重复一遍 - 这里没有错误,清除环境变量是处理问题的预期方式。问题3105是增强请求。 – 2009-10-22 17:48:46