根据后台流程启动流程

时间:2013-02-27 16:04:20

标签: java linux shell jboss jenkins

在应用程序服务器(JBoss)中运行了一些测试;我们希望将这些测试集成到Jenkins中。

在Jenkins中有以下步骤(所有步骤都是Ant步骤):

  • ...(其他步骤)
  • 在后台启动服务器
  • 运行测试
  • 停止服务器
  • ...(其他步骤)

服务器需要在后台启动,以便让以下任务完成工作。我编写了以下脚本来模仿这个:

export LAUNCH_JBOSS_IN_BACKGROUND=1
./run.sh &
sleep 400
cd /testTriggerLocation
ant run-tests
kill `cat $jBossHome/4.0.5/bin/jboss.pid`

run.sh启动服务器,启动后它将jVM进程id存储在jboss.pid中。

以正常方式(前台进程)JBoss需要大约100秒才能启动,但在这里它需要一个取决于睡眠参数的值。如果我放200秒需要大约190到210秒,如果它是300秒需要290 - 310秒;问题是如果在服务器启动之前触发测试,它们显然会失败。有没有办法同步这个?或者也许是另一种方法吗?

1 个答案:

答案 0 :(得分:0)

您可能希望使用一个简单的流程管理器,例如supervisordGod,它可以在您运行测试时为您守护进程。

就我而言,使用上帝我会跑:

 god -c my-project.god
 ruby test-runner.rb
 god terminate