从.bat启动独立进程

时间:2009-10-02 13:45:05

标签: windows batch-file hudson

我有一个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启动它。

  • 我想有一种方法可以对我的.bat文件说“好的,你将在一个独立的过程中启动我的应用程序服务器”。你们知道怎么做吗?
  • 也许哈德森能够解决这个问题?你是哈德森的家伙知道的吗?

先谢谢你的帮助!

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:2)

此处的最佳做法是清除环境变量BUILD_ID。在构建作业之后进行清理时,Hudson会查看每个进程中的BUILD_ID环境变量,以消除任何延迟进程。因此,通过清除该环境变量,Hudson不会终止该进程。