寻找启动jboss的最佳方式

时间:2010-10-15 10:03:17

标签: linux unix deployment jboss ksh

我正在尝试找出,如何在特定时间用cron作业启动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  

3 个答案:

答案 0 :(得分:2)

您可以轮询您的日志文件并检查行

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

答案 1 :(得分:1)

为什么JBoss启动预定的工作? JBoss不应该启动并运行很长时间吗?

启动JBoss的最佳方法是启动服务器一次,不要睡觉,让它运行数月或数年。这意味着它部署的操作系统是稳定的,您的应用程序不会泄漏内存。您只应将JBoss用于操作系统补丁和应用程序更新。

还有其他问题,你有一个问题需要深入解决。

答案 2 :(得分:0)

JBoss Maven plugin有一个start-and-wait目标,可通过JNDI端口检查服务器状态来执行您要查找的内容。如果这听起来很有吸引力,你可以查看源代码,了解它是如何做到的。