UPDATE Oct/2012:
UPDATE Feb/2014:
UPDATE Feb/2014:
UPDATE Nov/2016:
#!/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 $? |