Blog do Seba

DBA, Consultor, Instrutor, [aprendiz de] Ninja e metido a Chef nas horas vagas!

Script de inicialização para o JBoss EAP/AS

Created in Jul 4, 2012

200 Words. Read in about 1 Min.
Categories: JBoss Wildfly Script
Tags: Gist Startup System-v init.d

UPDATE Oct/2012:

  • Após 30 tentativas de matar o processo, dá um ‘kill -9’ nele!
  • Antes de iniciar o serviço , apaga os arquivos da pasta tmp e work da instância.

UPDATE Feb/2014:

  • Move o arquivo console.log para YYYY-DD-MM_console.log após o stop. – Antes do stop ou start, é testado se a instância já está rodando. Caso esteja rodando o start é abortado, caso não esteja o stop é abortado, de acordo com cada operação. – Ajustado a chamada do metodo de limpeza (do_cleanup). agora chamado no método de startup (do_start).

UPDATE Feb/2014:

  • caso o diretório de log da instância não exista, o mesmo será criado durante do startup

UPDATE Nov/2016:

  • Atualizando para um novo script, agora no gist.
#!/bin/bash
#
# chkconfig: 2345 90 10
#
# JBoss Standalone Control Script
#
# Developped by:
# Sebastian Webber - sebastian@swebber.me
# Last update:
# 2013-08-01
#
## DEFAULT SETTINGS ###########################################
JBOSS_HOME="/usr/share/jbossas"
JBOSS_INSTANCE_NAME='prd-101'
JBOSS_INSTANCE_HOME="/var/lib/jbossas/server/${JBOSS_INSTANCE_NAME}"
JBOSS_INSTANCE_PARMS=''
JBOSS_INSTANCE_PARMS="${JBOSS_INSTANCE_PARMS} -c standalone-ha.xml" # CHANGE FOR DIFFERENT PROFILE
JBOSS_INSTANCE_PARMS="${JBOSS_INSTANCE_PARMS} -Djboss.node.name=$(hostname):${JBOSS_INSTANCE_NAME}"
JBOSS_INSTANCE_PARMS="${JBOSS_INSTANCE_PARMS} -Djboss.socket.binding.port-offset=100"
JBOSS_INSTANCE_PARMS="${JBOSS_INSTANCE_PARMS} -Djboss.bind.address.management=0.0.0.0"
JBOSS_INSTANCE_PARMS="${JBOSS_INSTANCE_PARMS} -Djboss.server.base.dir=${JBOSS_INSTANCE_HOME}"
SERVICE_USER="jboss"
## STOP EDITING HERE ###########################################
. /etc/init.d/functions
function do_stop() {
max_tries=30
killed=0
echo -n -e "Stopping '${JBOSS_INSTANCE_NAME}' instance."
while [ ${killed} -eq 0 ]; do
java_pid=$(ps u -C java | grep Standalone | grep "${JBOSS_INSTANCE_PARMS}" | awk '{print $2}')
if [ "${java_pid}X" != "X" ]; then
if [ "${max_tries}" -ne 0 ]; then
kill -15 ${java_pid}
max_tries=$((${max_tries} - 1))
else
kill -9 ${java_pid}
fi
sleep 1
echo -n -e "."
else
killed=1
fi
done
success ; echo "Instance was stopped... "
echo "remove pastas temporarias..."
/bin/rm -rf $JBOSS_INSTANCE_HOME/tmp/work/jboss.web/default-host/*
}
function get_currentpid() {
pid=$(ps u -C java | grep Standalone | grep "${JBOSS_INSTANCE_PARMS}" | awk '{print $2}')
echo $pid
}
function do_start() {
wait_for_stop
current_pid=$(get_currentpid)
if [ "${current_pid}X" = "X" ]; then
echo -n -e "Starting JBoss '${JBOSS_INSTANCE_NAME}' instance..."
_console_log="${JBOSS_INSTANCE_HOME}/log/console.log"
_cmd="${JBOSS_HOME}/bin/standalone.sh ${JBOSS_INSTANCE_PARMS} > ${_console_log} 2>&1 &"
su - ${SERVICE_USER} -c "${_cmd}"
if [ $? -eq 0 ]; then
sleep 3 && show_status
else
failure ; echo "Instance fail to start..."
fi
else
warning ; echo "Instance is already running in ${current_pid}."
exit 1
fi
}
function wait_for_stop() {
while [[ true ]]; do
current_pid=$( get_currentpid )
kill -15 ${current_pid}
if [ "${current_pid}X" != "X" ]; then
sleep 1
else
break
fi
done
}
function show_status() {
java_pid=$(get_currentpid)
if [ "${java_pid}X" != "X" ]; then
success ; echo "Instance is running in ${java_pid} process..."
else
warning ; echo "Instance is NOT running..."
exit 1
fi
}
function show_usage() {
this_script=$(basename ${0})
echo "Usage: ${this_script} (start|stop|restart|status|help)"
}
case "${1}" in
start) do_start ;;
stop) do_stop;;
restart) do_stop ; do_start ;;
status) show_status ;;
*) show_usage ;;
esac
exit $?

Comentários

comments powered by Disqus