我正在尝试找出,如何在特定时间用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
答案 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端口检查服务器状态来执行您要查找的内容。如果这听起来很有吸引力,你可以查看源代码,了解它是如何做到的。