Jboss-rc-script SLES10


 * 1) ! /bin/bash
 * 2) Copyright (c) 1995-2003 SuSE Linux AG, Nuernberg, Germany.
 * 3) All rights reserved.
 * 4) Author: Petr Mladek
 * 5) Please send feedback to http://www.suse.de/feedback/
 * 6) /etc/init.d/jboss
 * 7)   and its symbolic link
 * 8) /usr/sbin/rcjboss
 * 9) LSB compatible service control script; see http://www.linuxbase.org/spec/
 * 10) BEGIN INIT INFO
 * 11) Provides:          jboss
 * 12) Required-Start:    $syslog $remote_fs
 * 13) X-UnitedLinux-Should-Start: $named $syslog $time
 * 14) Required-Stop:     $syslog $remote_fs
 * 15) X-UnitedLinux-Should-Stop: $named $syslog $time
 * 16) Default-Start:     3 5
 * 17) Default-Stop:      0 1 2 6
 * 18) Short-Description: JBoss Application Server
 * 19) Description:       Start jboss to get the fully featured Java application server running.
 * 20) END INIT INFO
 * 1) Default-Stop:      0 1 2 6
 * 2) Short-Description: JBoss Application Server
 * 3) Description:       Start jboss to get the fully featured Java application server running.
 * 4) END INIT INFO


 * 1) export LANG=de_DE.utf8
 * 2) export LC_ALL=de_DE.utf8

jbossIsRunning { jboss_ps_log=`mktemp /var/tmp/jboss-ps.log.XXXXXX` ps aux --cols 1024 >"$jboss_ps_log" jboss_is_running="false" if grep org.jboss.Main "$jboss_ps_log" >/dev/null 2>/dev/null ; then jboss_is_running="true" fi rm -f "$jboss_ps_log" test "$jboss_is_running" = "true" }

JBOSS_CONFIG=/etc/sysconfig/j2ee test -r "$JBOSS_CONFIG" || { echo "$JBOSS_CONFIG not existing"; if [ "$1" = "stop" ]; then exit 0; else exit 6; fi; }
 * 1) Check for missing binaries and configuration
 * 2) Note: Special treatment of stop for LSB conformance

. "$JBOSS_CONFIG"
 * 1) Read config

JBOSS_START_BIN=$JBOSS_HOME/bin/run.sh JBOSS_STOP_BIN=$JBOSS_HOME/bin/shutdown.sh test -x $JBOSS_START_BIN || { echo "$JBOSS_START_BIN not installed"; if [ "$1" = "stop" ]; then exit 0; else exit 5; fi; } test -x $JBOSS_STOP_BIN || { echo "$JBOSS_STOP_BIN not installed"; if [ "$1" = "stop" ]; then exit 0; else exit 5; fi; }
 * 1) check binaries

test -d "$JBOSS_HOME/server/$JBOSS_CONFIG" || { echo "$JBOSS_HOME/server/$JBOSS_CONFIG not existing"; if [ "$1" = "stop" ]; then exit 0; else exit 6; fi; }
 * 1) check configuration


 * 1) Source LSB init functions
 * 2) providing start_daemon, killproc, pidofproc,
 * 3) log_success_msg, log_failure_msg and log_warning_msg.
 * 4) This is currently not used by UnitedLinux based distributions and
 * 5) not needed for init scripts for UnitedLinux only. If it is used,
 * 6) the functions from rc.status should not be sourced or used.
 * 7) . /lib/lsb/init-functions

. /etc/rc.status
 * 1) Shell functions sourced from /etc/rc.status:
 * 2)      rc_check         check and set local and overall rc status
 * 3)      rc_status        check and set local and overall rc status
 * 4)      rc_status -v     be verbose in local rc status and clear it afterwards
 * 5)      rc_status -v -r  ditto and clear both the local and overall rc status
 * 6)      rc_status -s     display "skipped" and exit with status 3
 * 7)      rc_status -u     display "unused" and exit with status 3
 * 8)      rc_failed        set local and overall rc status to failed
 * 9)      rc_failed  set local and overall rc status to
 * 10)      rc_reset         clear both the local and overall rc status
 * 11)      rc_exit          exit appropriate to overall rc status
 * 12)      rc_active        checks whether a service is activated by symlinks
 * 13)      rc_splash arg    sets the boot splash screen to arg (if active)


 * 1) set path to a valid Java SDK
 * 2) . setJava --devel --version 1.3

rc_reset
 * 1) Reset status of this service


 * 1) Return values acc. to LSB for all commands but status:
 * 2) 0       - success
 * 3) 1       - generic or unspecified error
 * 4) 2       - invalid or excess argument(s)
 * 5) 3       - unimplemented feature (e.g. "reload")
 * 6) 4       - user had insufficient privileges
 * 7) 5       - program is not installed
 * 8) 6       - program is not configured
 * 9) 7       - program is not running
 * 10) 8--199  - reserved (8--99 LSB, 100--149 distrib, 150--199 appl)
 * 11) Note that starting an already running service, stopping
 * 12) or restarting a not-running service as well as the restart
 * 13) with force-reload (in case signaling is not supported) are
 * 14) considered a success.
 * 1) considered a success.

case "$1" in   start)        echo -n "Starting jboss ($JBOSS_CONFIG)"        ## Start daemon with startproc(8). If this fails        ## the return value is set appropriately by startproc.

# NOTE: startproc return 0, even if service is       # already running to match LSB spec. if jbossIsRunning ; then rc_failed 0 else # try to fix permissions test -d "$JBOSS_HOME/server/${JBOSS_CONFIG:-default}" && \ chown -R --dereference jboss:jboss "$JBOSS_HOME/server/${JBOSS_CONFIG:-default}" 2>/dev/null || true # define options and start server JBOSS_START_OPTIONS="" test -n "$JBOSS_CONFIG" && JBOSS_START_OPTIONS="-c $JBOSS_CONFIG" chown -R jboss:jboss "$JBOSS_HOME/server/$JBOSS_CONFIG" (           # FIXME: jboss want to save some temporary files in the directory            #        which it is started from            cd /var/tmp/            su jboss -s /bin/bash -c "$JBOSS_START_BIN $JBOSS_BIND_ADDRESS" >/dev/null 2>&1 &          ) # wait 60 sec for stop at maximum wait_sec=60 while [ "$wait_sec" != "0" ] ; do           sleep 1 if jbossIsRunning ; then # the jboss server is stoped, end the loop wait_sec=0 break fi           wait_sec=$((wait_sec -1)) done # check the final status if jbossIsRunning ; then rc_failed 0 else rc_failed 7 fi       fi        # Remember status and be verbose rc_status -v ;;   stop)        echo -n "Shutting down jboss "        if jbossIsRunning ; then          su jboss -s /bin/bash -c "$JBOSS_STOP_BIN -S" >/dev/null 2>&1          # wait 60 sec for stop at maximum          wait_sec=60          while [ "$wait_sec" != "0" ] ; do            sleep 1            if ! jbossIsRunning ; then              # the jboss server is stoped, end the loop              wait_sec=0              break            fi            wait_sec=$((wait_sec -1))          done          # check the final status          if jbossIsRunning ; then            rc_failed 1          else            rc_failed 0          fi        else          rc_failed 0        fi        # Remember status and be verbose        rc_status -v        ;;    try-restart|condrestart) ## Do a restart only if the service was active before. ## Note: try-restart is now part of LSB (as of 1.9). ## RH has a similar command named condrestart. if test "$1" = "condrestart"; then echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}" fi       $0 status if test $? = 0; then $0 restart else rc_reset       # Not running is not a failure. fi       # Remember status and be quiet rc_status ;;   restart)        ## Stop the service and regardless of whether it was        ## running or not, start it again.        $0 stop        $0 start

# Remember status and be quiet rc_status ;;   force-reload)        ## Signal the daemon to reload its config. Most daemons        ## do this on signal 1 (SIGHUP).        ## If it does not support it, restart.

echo -n "Reload service jboss " $0 try-restart rc_status ;;   reload)        ## Like force-reload, but if daemon does not support        ## signaling, do nothing (!)

rc_failed 3 rc_status -v ;;   status)        echo -n "Checking for service jboss "        ## Check status with checkproc(8), if process is running        ## checkproc will return with exit status 0.

# Return value is slightly different for the status command: # 0 - service up and running # 1 - service dead, but /var/run/ pid  file exists # 2 - service dead, but /var/lock/ lock file exists # 3 - service not running (unused) # 4 - service status unknown :-(       # 5--199 reserved (5--99 LSB, 100--149 distro, 150--199 appl.)

if jbossIsRunning ; then rc_failed 0 else rc_failed 3 fi

# NOTE: rc_status knows that we called this init script with # "status" option and adapts its messages accordingly. rc_status -v ;;   probe)        ## Optional: Probe for the necessity of a reload, print out the        ## argument to this init script which is required for a reload.        ## Note: probe is not (yet) part of LSB (as of 1.9)        ;;    *) echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}" exit 1 ;; esac rc_exit