#!/bin/sh # # $FreeBSD$ # # # Configuration settings for geronimo%%GERONIMO_VERSION%% in /etc/rc.conf: # # geronimo%%GERONIMO_VERSION%%_enable (bool): # Set to "NO" by default. # Set it to "YES" to enable geronimo%%GERONIMO_VERSION%% # # geronimo%%GERONIMO_VERSION%%_flags (str): # Set to "" by default. # Extra flags passed to start command # # geronimo%%GERONIMO_VERSION%%_home (str) # Set to "%%GERONIMO_HOME%%" by default. # Set the CATALINA_HOME variable for the Tomcat process # # geronimo%%GERONIMO_VERSION%%_base (str) # Set to "%%GERONIMO_HOME%%" by default. # Set the CATALINA_BASE variable for the Tomcat process # # geronimo%%GERONIMO_VERSION%%_tmpdir (str) # Set to "%%GERONIMO_HOME%%/temp" by default. # # geronimo%%GERONIMO_VERSION%%_out (str) # Set to "%%GERONIMO_OUT%%" by default. # Set the location for the Geronimo process log (standard output & error output) # # geronimo%%GERONIMO_VERSION%%_stop_timeout (num) # Set to "10" by default. # Sets the timeout in seconds to allow geronimo to shutdown. # After the timeout has elapsed, geronimo will be killed. # # geronimo%%GERONIMO_VERSION%%_java_home (str): # geronimo%%GERONIMO_VERSION%%_java_vendor (str): # geronimo%%GERONIMO_VERSION%%_java_version (str): # geronimo%%GERONIMO_VERSION%%_java_os (str): # Specify the requirements of the Java VM to use. See javavm(1). # # geronimo%%GERONIMO_VERSION%%_classpath (str): # Set to "" by default. # Addtional classes to add to the CLASSPATH # # geronimo%%GERONIMO_VERSION%%_java_opts (str): # Set to "" by default. # Java VM args to use. # geronimo%%GERONIMO_VERSION%%_enable="${geronimo%%GERONIMO_VERSION%%_enable:-"NO"}" geronimo%%GERONIMO_VERSION%%_java_version="${geronimo%%GERONIMO_VERSION%%_java_version:-"%%JAVA_VERSION%%"}" geronimo%%GERONIMO_VERSION%%_user="${geronimo%%GERONIMO_VERSION%%_user:-"%%USER%%"}" geronimo%%GERONIMO_VERSION%%_home="${geronimo%%GERONIMO_VERSION%%_home:-"%%GERONIMO_HOME%%"}" geronimo%%GERONIMO_VERSION%%_base="${geronimo%%GERONIMO_VERSION%%_base:-"%%GERONIMO_HOME%%"}" geronimo%%GERONIMO_VERSION%%_tmpdir="${geronimo%%GERONIMO_VERSION%%_tmpdir:-"/tmp"}" geronimo%%GERONIMO_VERSION%%_out="${geronimo%%GERONIMO_VERSION%%_out:-"%%GERONIMO_OUT%%"}" geronimo%%GERONIMO_VERSION%%_stop_timeout="${geronimo%%GERONIMO_VERSION%%_stop_timeout:-"10"}" . %%RC_SUBR%% name="geronimo%%GERONIMO_VERSION%%" rcvar=`set_rcvar` pidfile="%%PID_FILE%%" JAVA_HOME=%%JAVA_HOME%% JRE_HOME=$JAVA_HOME/jre EXT_DIRS="$JRE_HOME/lib/ext:${geronimo%%GERONIMO_VERSION%%_home}/lib/ext" ENDORSED_DIRS="$JRE_HOME/lib/endorsed:${geronimo%%GERONIMO_VERSION%%_home}/lib/endorsed" LONG_OPT= if [ "$1" = "start" ] ; then LONG_OPT=--long fi load_rc_config "${name}" if [ -n "${geronimo%%GERONIMO_VERSION%%_java_home}" ] ; then export JAVA_HOME="${geronimo%%GERONIMO_VERSION%%_java_home}" fi if [ -n "${geronimo%%GERONIMO_VERSION%%_java_version}" ] ; then export JAVA_VERSION="${geronimo%%GERONIMO_VERSION%%_java_version}" fi if [ -n "${geronimo%%GERONIMO_VERSION%%_java_vendor}" ] ; then export JAVA_VENDOR="${geronimo%%GERONIMO_VERSION%%_java_vendor}" fi if [ -n "${geronimo%%GERONIMO_VERSION%%_java_os}" ] ; then export JAVA_OS="${geronimo%%GERONIMO_VERSION%%_java_os}" fi java_cmd= if [ -z "${JAVA_HOME}" ] ; then java_cmd=%%LOCALBASE%%/bin/java else java_cmd=${JAVA_HOME}/bin/java fi java_command="$java_cmd \ ${geronimo%%GERONIMO_VERSION%%_java_opts} \ -Dorg.apache.geronimo.base.dir=${geronimo%%GERONIMO_VERSION%%_base} \ -Djava.endorsed.dirs=$ENDORSED_DIRS \ -Djava.ext.dirs=$EXT_DIRS \ -Djava.io.tmpdir=${geronimo%%GERONIMO_VERSION%%_tmpdir}" java_start_command="${java_command} \ -jar ${geronimo%%GERONIMO_VERSION%%_home}/bin/server.jar $LONG_OPT" java_stop_command="${java_command} \ -jar ${geronimo%%GERONIMO_VERSION%%_home}/bin/shutdown.jar" log_args=">> ${geronimo%%GERONIMO_VERSION%%_out} 2>&1" # Subvert the check_pid_file procname check. if [ -f $pidfile ]; then read rc_pid junk < $pidfile if [ ! -z "$rc_pid" ]; then procname=`ps -o ucomm= $rc_pid` fi fi command="/usr/sbin/daemon" flags="-p ${pidfile} ${java_start_command} ${geronimo%%GERONIMO_VERSION%%_flags} ${log_args}" start_precmd=pid_touch stop_cmd="geronimo%%GERONIMO_VERSION%%_stop" pid_touch () { touch $pidfile chown $geronimo%%GERONIMO_VERSION%%_user $pidfile } geronimo%%GERONIMO_VERSION%%_stop() { rc_pid=$(check_pidfile $pidfile *$procname*) if [ -z "$rc_pid" ]; then [ -n "$rc_fast" ] && return 0 if [ -n "$pidfile" ]; then echo "${name} not running? (check $pidfile)." else echo "${name} not running?" fi return 1 fi echo "Stopping ${name}." kill ${rc_pid} 2> /dev/null geronimo_wait_max_for_pid ${geronimo%%GERONIMO_VERSION%%_stop_timeout} ${rc_pid} kill -KILL ${rc_pid} 2> /dev/null && echo "Killed." echo -n > ${pidfile} } geronimo_wait_max_for_pid() { _timeout=$1 shift _pid=$1 _prefix= while [ $_timeout -gt 0 ] ; do echo -n ${_prefix:-"Waiting (max $_timeout secs) for PIDS: "}$_pid _prefix=", " sleep 2 kill -0 $_pid 2> /dev/null || break _timeout=$(($_timeout-2)) done if [ -n "$_prefix" ]; then echo "." fi } run_rc_command "$1"