寻找启动jboss的最佳方式

问题描述:

我想知道,如何在特定的时间启动带有cron作业的JBoss。寻找启动jboss的最佳方式

我现在正在做的是设置一个cron,然后在JBoss startinstance脚本中,我放置睡眠700秒,直到jboss启动。

有没有更好的方法来真正知道JBoss何时成功启动,然后继续流动,而不是睡700秒?有没有人做过类似的事情?

我有这样的事情,我不认为这是正确的解决方案:

#!/bin/ksh 
#This script accepts one parameter URL which should to tracked 

usage() { 
    msg=${1} 
    echo "ERROR: " 
    exit 1 
} 

args_no=$# 

if [[ ${args_no} -ne 1 ]]; then 
    usage 
fi 

URL_to_check=${1} 

jboss_status=1 

while [[ ${jboss_status} -ne 0 ]]; do 
    wget ${URL_to_check} > /dev/null 
    jboss_status=$? 
    sleep 10 
done 

exit 0 
+0

为什么这被封闭为不具建设性? – helpermethod 2012-09-10 08:39:48

为什么JBoss的启动计划的作业? JBoss是否应该启动并运行很长时间?

启动JBoss的最好方法是在没有睡眠的情况下启动服务器一次,并让它运行数月或数年。这意味着它所部署的操作系统是稳定的,并且您的应用程序不会泄漏内存。你应该只关注JBoss以获取操作系统补丁和应用程序更新。

还有什么,你有一个问题,你应该深入解决。

+0

,因为每次启动时它都会运行不同的war – ant 2010-10-15 11:46:09

+0

,当你为了测试目的而部署大量JBoss实例时,你必须不时地重新启动它。否则,它最终会运行到“OutOfMemoryError”中。但是,我同意JBoss可以/应该运行很长一段时间而不需要部署。 – kraftan 2010-10-15 11:52:26

你可以查询你的日志文件,并检查该行

ServerImpl.info: JBoss.*Started in 

和投票之间长裤睡觉例如:

LOG_FILE=/path/to/jboss.log 
start_info='' 

while [[ ! -n "${start_info}" ]]; do 
    start_info=`grep "ServerImpl.info: JBoss.*Started in" $LOG_FILE` 
    sleep 10 
done 
+0

我编辑了我的问题,你的意思是这样吗?而不是轮询日志文件,如果我正确理解你的话,它的基本原理基本相同 – ant 2010-10-15 12:14:32

+0

@ c0mrade号我想过检查你的JBoss日志文件。例如使用'grep'命令。我相应地调整了我的答案。 – kraftan 2010-10-15 12:51:17

+0

+1非常棒的答案,就是我在找的东西。虽然你可以替换'[[!! -n $ start_info]]''''['-z $ start_info]''。 – helpermethod 2012-09-10 09:52:44

JBoss Maven pluginstart-and-wait目标这确实你在找什么由通过JNDI端口检查服务器状态。如果这听起来很有吸引力,那么您可以查看源代码,看看它如何发挥作用。

+0

tnx彼得我可以做到这一点,是Java还是? – ant 2010-10-15 12:15:03

+0

@ c0mrade,是的,请参阅http://mojo.codehaus.org/jboss-maven-plugin/source-repository.html – 2010-10-15 12:28:36