2010-10-15 2 views
2

Я пытаюсь выяснить, как запустить JBoss с работой cron в определенное время.Ищите лучший способ начать jboss

То, что я делаю в данный момент, - это установка cron, а затем внутри сценария запуска JBoss. Я положил сон на 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

ответ

1

Почему при запуске JBoss запланированного задания? Разве JBoss не должен запускаться и запускаться очень долго?

Лучший способ запуска JBoss - запустить сервер один раз, без сна, и позволить ему работать в течение нескольких месяцев или лет. Это означает, что операционная система, на которой она развернута, стабильна, и ваше приложение не теряет память. Вы должны только привести JBoss к исправлениям ОС и обновлениям приложений.

Что-нибудь еще, и у вас есть проблема, которую вы должны решить.

+0

потому что каждый раз, когда я его запускаю, он будет запускать разную войну – ant

+0

, когда вы много раз развертываете свой экземпляр JBoss для тестирования, вам нужно время от времени перезапускать его. В противном случае он в конечном итоге попадает в «OutOfMemoryError». Тем не менее, я согласен с тем, что JBoss может/должен работать в течение очень долгого времени без развертывания. – kraftan

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 
+0

Я отредактировал мой вопрос, вы имели в виду что-то вроде этого? вместо того, чтобы опросить файл журнала, в основном тот же принцип, если я правильно понял вас – ant

+0

@ c0mrade Нет. Я думал о проверке вашего файла журнала JBoss. Например, с командой 'grep'. Я соответствующим образом скорректировал свой ответ. – kraftan

+0

+1 Удивительный ответ, именно то, что я искал. Хотя вы могли бы заменить '[[! -n $ start_info]] 'с' [[-z $ start_info]] '. – helpermethod

0

JBoss Maven plugin имеет start-and-wait цель, которая делает то, что вы ищете путем проверки состояния сервера через порт JNDI. Если это звучит убедительно, вы можете заглянуть в исходный код, чтобы увидеть, как он делает то, что он делает.

+0

tnx Peter Я мог бы это сделать, это на Java или? – ant

+0

@ c0mrade, да, см. Http://mojo.codehaus.org/jboss-maven-plugin/source-repository.html –

Смежные вопросы