9aac569eaa
Where necessary add $FreeBSD$ to the file No PORTREVISION bump necessary because this is a no-op
178 lines
4.6 KiB
Bash
178 lines
4.6 KiB
Bash
#!/bin/sh
|
|
#
|
|
# $FreeBSD$
|
|
#
|
|
|
|
#
|
|
# Configuration settings for geronimo%%GERONIMO_VERSION%% in /etc/rc.conf:
|
|
#
|
|
# james%%JAMES_VERSION%%_enable (bool):
|
|
# Set to "NO" by default.
|
|
# Set it to "YES" to enable james%%JAMES_VERSION%%
|
|
#
|
|
#
|
|
# james%%JAMES_VERSION%%_home (str)
|
|
# Set to "%%JAMES_HOME%%" by default.
|
|
# Set the JAMES_HOME variable for the James process
|
|
#
|
|
# james%%JAMES_VERSION%%_base (str)
|
|
# Set to "%%JAMES_HOME%%" by default.
|
|
# Set the JAMES_BASE variable for the James process
|
|
#
|
|
# james%%JAMES_VERSION%%_tmpdir (str)
|
|
# Set to "/tmp" by default.
|
|
#
|
|
# 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.
|
|
#
|
|
# james%%JAMES_VERSION%%_java_home (str):
|
|
# james%%JAMES_VERSION%%_java_vendor (str):
|
|
# james%%JAMES_VERSION%%_java_version (str):
|
|
# james%%JAMES_VERSION%%_java_os (str):
|
|
# Specify the requirements of the Java VM to use. See javavm(1).
|
|
#
|
|
# james%%JAMES_VERSION%%_classpath (str):
|
|
# Set to "" by default.
|
|
# Addtional classes to add to the CLASSPATH
|
|
#
|
|
# james%%JAMES_VERSION%%_java_opts (str):
|
|
# Set to "" by default.
|
|
# Java VM args to use.
|
|
#
|
|
|
|
james%%JAMES_VERSION%%_enable="${james%%JAMES_VERSION%%_enable:-"NO"}"
|
|
james%%JAMES_VERSION%%_java_version="${james%%JAMES_VERSION%%_java_version:-"%%JAVA_VERSION%%"}"
|
|
james%%JAMES_VERSION%%_home="${james%%JAMES_VERSION%%_home:-"%%JAMES_HOME%%"}"
|
|
james%%JAMES_VERSION%%_base="${james%%JAMES_VERSION%%_base:-"%%JAMES_HOME%%"}"
|
|
james%%JAMES_VERSION%%_tmpdir="${james%%JAMES_VERSION%%_tmpdir:-"/tmp"}"
|
|
james%%JAMES_VERSION%%_stop_timeout="${james%%JAMES_VERSION%%_stop_timeout:-"10"}"
|
|
|
|
. /etc/rc.subr
|
|
|
|
name="james%%JAMES_VERSION%%"
|
|
rcvar=james%%JAMES_VERSION%%_enable
|
|
pidfile="%%PID_FILE%%"
|
|
|
|
JAVA_HOME=%%JAVA_HOME%%
|
|
JRE_HOME=$JAVA_HOME/jre
|
|
|
|
JVM_EXT_DIRS="${james%%JAMES_VERSION%%_home}/lib:${james%%JAMES_VERSION%%_home}/tools/lib"
|
|
JVM_OPTS="-Djava.ext.dirs=$JVM_EXT_DIRS"
|
|
|
|
load_rc_config "${name}"
|
|
|
|
if [ -n "${james%%JAMES_VERSION%%_java_home}" ] ; then
|
|
export JAVA_HOME="${james%%JAMES_VERSION%%_java_home}"
|
|
fi
|
|
|
|
if [ -n "${james%%JAMES_VERSION%%_java_version}" ] ; then
|
|
export JAVA_VERSION="${james%%JAMES_VERSION%%_java_version}"
|
|
fi
|
|
|
|
if [ -n "${james%%JAMES_VERSION%%_java_vendor}" ] ; then
|
|
export JAVA_VENDOR="${james%%JAMES_VERSION%%_java_vendor}"
|
|
fi
|
|
|
|
if [ -n "${james%%JAMES_VERSION%%_java_os}" ] ; then
|
|
export JAVA_OS="${james%%JAMES_VERSION%%_java_os}"
|
|
fi
|
|
|
|
if [ "$JAVA_HOME" = "" ] ; then
|
|
echo "ERROR: JAVA_HOME not found in your environment."
|
|
echo
|
|
echo "Please, set the JAVA_HOME variable in your environment to match the"
|
|
echo "location of the Java Virtual Machine you want to use."
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "${james%%JAMES_VERSION%%_tmpdir}" ] ; then
|
|
# Define the java.io.tmpdir to use for Phoenix
|
|
james%%JAMES_VERSION%%_tmpdir="${james%%JAMES_VERSION%%_home}"/temp
|
|
mkdir -p "${james%%JAMES_VERSION%%_tmpdir}"
|
|
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 $JVM_OPTS \
|
|
-Djava.security.policy=jar:file:${james%%JAMES_VERSION%%_home}/bin/phoenix-loader.jar!/META-INF/java.policy \
|
|
-Dphoenix.home=${james%%JAMES_VERSION%%_home} \
|
|
-Djava.io.tmpdir=${james%%JAMES_VERSION%%_tmpdir} \
|
|
-jar ${james%%JAMES_VERSION%%_home}/bin/phoenix-loader.jar >/dev/null"
|
|
|
|
PHOENIX_CONSOLE="$PHOENIX_TMPDIR/phoenix.console"
|
|
if [ -z "$PHOENIX_CONSOLE" ]
|
|
then
|
|
if [ -w /dev/console ]
|
|
then
|
|
PHOENIX_CONSOLE=/dev/console
|
|
else
|
|
PHOENIX_CONSOLE=/dev/tty
|
|
fi
|
|
fi
|
|
|
|
|
|
# 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_command}"
|
|
|
|
start_precmd=pid_touch
|
|
stop_cmd="james%%JAMES_VERSION%%_stop"
|
|
|
|
pid_touch ()
|
|
{
|
|
touch $pidfile
|
|
}
|
|
|
|
james%%JAMES_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}>/dev/null
|
|
james_wait_max_for_pid ${james%%JAMES_VERSION%%_stop_timeout} ${rc_pid}
|
|
kill -KILL ${rc_pid} 2> /dev/null && echo "Killed."
|
|
echo -n > ${pidfile}
|
|
}
|
|
|
|
james_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"
|