mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-29 01:13:08 +00:00
9aac569eaa
Where necessary add $FreeBSD$ to the file No PORTREVISION bump necessary because this is a no-op
194 lines
5.4 KiB
Bash
194 lines
5.4 KiB
Bash
#!/bin/sh
|
|
#
|
|
# $FreeBSD$
|
|
#
|
|
|
|
# PROVIDE: tomcat%%TOMCAT_VERSION%%
|
|
# REQUIRE: LOGIN
|
|
# KEYWORD: shutdown
|
|
|
|
#
|
|
# Configuration settings for tomcat%%TOMCAT_VERSION%% in /etc/rc.conf:
|
|
#
|
|
# tomcat%%TOMCAT_VERSION%%_enable (bool):
|
|
# Set to "NO" by default.
|
|
# Set it to "YES" to enable tomcat%%TOMCAT_VERSION%%
|
|
#
|
|
# tomcat%%TOMCAT_VERSION%%_flags (str):
|
|
# Set to "" by default.
|
|
# Extra flags passed to start command
|
|
#
|
|
# tomcat%%TOMCAT_VERSION%%_catalina_home (str)
|
|
# Set to "%%TOMCAT_HOME%%" by default.
|
|
# Set the CATALINA_HOME variable for the Tomcat process
|
|
#
|
|
# tomcat%%TOMCAT_VERSION%%_catalina_base (str)
|
|
# Set to "%%TOMCAT_HOME%%" by default.
|
|
# Set the CATALINA_BASE variable for the Tomcat process
|
|
#
|
|
# tomcat%%TOMCAT_VERSION%%_catalina_tmpdir (str)
|
|
# Set to "%%TOMCAT_HOME%%/temp" by default.
|
|
# Set the CATALINA_TMPDIR variable for the Tomcat process
|
|
#
|
|
# tomcat%%TOMCAT_VERSION%%_catalina_log (str)
|
|
# Set to ">> %%STDOUT_LOG%% 2>> %%STDERR_LOG%%" by default.
|
|
# Set the Tomcat Console logger
|
|
#
|
|
# tomcat%%TOMCAT_VERSION%%_stop_timeout (num)
|
|
# Set to "10" by default.
|
|
# Sets the timeout in seconds to allow tomcat to shutdown.
|
|
# After the timeout has elapsed, tomcat will be killed.
|
|
#
|
|
# tomcat%%TOMCAT_VERSION%%_java_home (str):
|
|
# tomcat%%TOMCAT_VERSION%%_java_vendor (str):
|
|
# tomcat%%TOMCAT_VERSION%%_java_version (str):
|
|
# tomcat%%TOMCAT_VERSION%%_java_os (str):
|
|
# Specify the requirements of the Java VM to use. See javavm(1).
|
|
#
|
|
# tomcat%%TOMCAT_VERSION%%_classpath (str):
|
|
# Set to "" by default.
|
|
# Addtional classes to add to the CLASSPATH
|
|
#
|
|
# tomcat%%TOMCAT_VERSION%%_java_opts (str):
|
|
# Set to "" by default.
|
|
# Java VM args to use.
|
|
#
|
|
|
|
tomcat%%TOMCAT_VERSION%%_enable="${tomcat%%TOMCAT_VERSION%%_enable:-"NO"}"
|
|
tomcat%%TOMCAT_VERSION%%_java_version="${tomcat%%TOMCAT_VERSION%%_java_version:-"%%JAVA_VERSION%%"}"
|
|
tomcat%%TOMCAT_VERSION%%_user="${tomcat%%TOMCAT_VERSION%%_user:-"%%USER%%"}"
|
|
tomcat%%TOMCAT_VERSION%%_catalina_home="${tomcat%%TOMCAT_VERSION%%_catalina_home:-"%%TOMCAT_HOME%%"}"
|
|
tomcat%%TOMCAT_VERSION%%_catalina_base="${tomcat%%TOMCAT_VERSION%%_catalina_base:-"%%TOMCAT_HOME%%"}"
|
|
tomcat%%TOMCAT_VERSION%%_catalina_tmpdir="${tomcat%%TOMCAT_VERSION%%_catalina_tmpdir:-"%%TOMCAT_HOME%%/temp"}"
|
|
tomcat%%TOMCAT_VERSION%%_catalina_log="${tomcat%%TOMCAT_VERSION%%_catalina_log:-">> %%STDOUT_LOG%% 2>> %%STDERR_LOG%%"}"
|
|
tomcat%%TOMCAT_VERSION%%_stop_timeout="${tomcat%%TOMCAT_VERSION%%_stop_timeout:-"10"}"
|
|
|
|
. /etc/rc.subr
|
|
|
|
name="tomcat%%TOMCAT_VERSION%%"
|
|
rcvar=tomcat%%TOMCAT_VERSION%%_enable
|
|
pidfile="/var/run/%%APP_SHORTNAME%%.pid"
|
|
|
|
load_rc_config "${name}"
|
|
|
|
if [ -n "${tomcat%%TOMCAT_VERSION%%_java_home}" ] ; then
|
|
export JAVA_HOME="${tomcat%%TOMCAT_VERSION%%_java_home}"
|
|
fi
|
|
|
|
if [ -n "${tomcat%%TOMCAT_VERSION%%_java_version}" ] ; then
|
|
export JAVA_VERSION="${tomcat%%TOMCAT_VERSION%%_java_version}"
|
|
fi
|
|
|
|
if [ -n "${tomcat%%TOMCAT_VERSION%%_java_vendor}" ] ; then
|
|
export JAVA_VENDOR="${tomcat%%TOMCAT_VERSION%%_java_vendor}"
|
|
fi
|
|
|
|
if [ -n "${tomcat%%TOMCAT_VERSION%%_java_os}" ] ; then
|
|
export JAVA_OS="${tomcat%%TOMCAT_VERSION%%_java_os}"
|
|
fi
|
|
|
|
java_class="org.apache.catalina.startup.Bootstrap"
|
|
java_command="%%LOCALBASE%%/bin/java \
|
|
${tomcat%%TOMCAT_VERSION%%_java_opts} \
|
|
-Djava.endorsed.dirs=%%TOMCAT_HOME%%/endorsed \
|
|
-classpath %%TOMCAT_HOME%%/%%JAR_FILE%%:${tomcat%%TOMCAT_VERSION%%_classpath} \
|
|
-Dcatalina.base=${tomcat%%TOMCAT_VERSION%%_catalina_base} \
|
|
-Dcatalina.home=${tomcat%%TOMCAT_VERSION%%_catalina_home} \
|
|
-Djava.io.tmpdir=${tomcat%%TOMCAT_VERSION%%_catalina_tmpdir} \
|
|
${java_class}"
|
|
|
|
required_files="${tomcat%%TOMCAT_VERSION%%_catalina_home}/conf/server.xml"
|
|
|
|
command="/usr/sbin/daemon"
|
|
flags="-p ${pidfile} ${java_command} start ${tomcat%%TOMCAT_VERSION%%_flags} ${tomcat%%TOMCAT_VERSION%%_catalina_log}"
|
|
|
|
start_precmd="pid_touch"
|
|
stop_cmd="tomcat_stop"
|
|
status_cmd="tomcat_status"
|
|
poll_cmd="tomcat_poll"
|
|
|
|
pid_touch() {
|
|
touch $pidfile
|
|
chown $tomcat%%TOMCAT_VERSION%%_user $pidfile
|
|
}
|
|
|
|
tomcat_stop() {
|
|
rc_pid=$(tomcat_check_pidfile $pidfile)
|
|
|
|
if [ -z "$rc_pid" ]; then
|
|
[ -n "$rc_fast" ] && return 0
|
|
echo "${name} not running? (check $pidfile)."
|
|
return 1
|
|
fi
|
|
|
|
echo "Stopping ${name}."
|
|
${java_command} stop
|
|
tomcat_wait_max_for_pid ${tomcat%%TOMCAT_VERSION%%_stop_timeout} ${rc_pid}
|
|
kill -KILL ${rc_pid} 2> /dev/null && echo "Killed."
|
|
rm -f ${pidfile}
|
|
}
|
|
|
|
tomcat_status() {
|
|
rc_pid=$(tomcat_check_pidfile $pidfile)
|
|
|
|
if [ -n "$rc_pid" ]; then
|
|
echo "${name} is running as pid $rc_pid."
|
|
else
|
|
echo "${name} is not running."
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
tomcat_poll() {
|
|
rc_pid=$(tomcat_check_pidfile $pidfile)
|
|
|
|
_prefix=
|
|
while (true) ; do
|
|
[ -z "$rc_pid" ] && break
|
|
echo -n ${_prefix:-"Waiting for PIDS: "}$rc_pid
|
|
_prefix=", "
|
|
sleep 2
|
|
done
|
|
if [ -n "$_prefix" ]; then
|
|
echo "."
|
|
fi
|
|
}
|
|
|
|
tomcat_check_pidfile() {
|
|
_pidfile=$1
|
|
if [ -z "$_pidfile" ]; then
|
|
err 3 'USAGE: tomcat_check_pidfile pidfile'
|
|
fi
|
|
if [ ! -f $_pidfile ]; then
|
|
debug "pid file ($_pidfile): not readable."
|
|
return
|
|
fi
|
|
read _pid _junk < $_pidfile
|
|
if [ -z "$_pid" ]; then
|
|
debug "pid file ($_pidfile): no pid in file."
|
|
return
|
|
fi
|
|
if [ -n "`%%LOCALBASE%%/bin/jps -l | grep -e "^$_pid $java_class\$"`" ]; then
|
|
echo -n $_pid
|
|
fi
|
|
}
|
|
|
|
tomcat_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"
|