parent
9fd80e8524
commit
cb6c582333
|
@ -0,0 +1,618 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# LSB Tags
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides: jetty
|
||||||
|
# Required-Start: $local_fs $network
|
||||||
|
# Required-Stop: $local_fs $network
|
||||||
|
# Default-Start: 2 3 4 5
|
||||||
|
# Default-Stop: 0 1 6
|
||||||
|
# Short-Description: Jetty start script.
|
||||||
|
# Description: Start Jetty web server.
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
# Startup script for jetty under *nix systems (it works under NT/cygwin too).
|
||||||
|
|
||||||
|
##################################################
|
||||||
|
# Set the name which is used by other variables.
|
||||||
|
# Defaults to the file name without extension.
|
||||||
|
##################################################
|
||||||
|
NAME=$(echo $(basename $0) | sed -e 's/^[SK][0-9]*//' -e 's/\.sh$//')
|
||||||
|
|
||||||
|
# To get the service to restart correctly on reboot, uncomment below (3 lines):
|
||||||
|
# ========================
|
||||||
|
# chkconfig: 3 99 99
|
||||||
|
# description: Jetty 9 webserver
|
||||||
|
# processname: jetty
|
||||||
|
# ========================
|
||||||
|
|
||||||
|
# Configuration files
|
||||||
|
#
|
||||||
|
# /etc/default/$NAME
|
||||||
|
# If it exists, this is read at the start of script. It may perform any
|
||||||
|
# sequence of shell commands, like setting relevant environment variables.
|
||||||
|
#
|
||||||
|
# $HOME/.$NAMErc (e.g. $HOME/.jettyrc)
|
||||||
|
# If it exists, this is read at the start of script. It may perform any
|
||||||
|
# sequence of shell commands, like setting relevant environment variables.
|
||||||
|
#
|
||||||
|
# /etc/$NAME.conf
|
||||||
|
# If found, and no configurations were given on the command line,
|
||||||
|
# the file will be used as this script's configuration.
|
||||||
|
# Each line in the file may contain:
|
||||||
|
# - A comment denoted by the pound (#) sign as first non-blank character.
|
||||||
|
# - The path to a regular file, which will be passed to jetty as a
|
||||||
|
# config.xml file.
|
||||||
|
# - The path to a directory. Each *.xml file in the directory will be
|
||||||
|
# passed to jetty as a config.xml file.
|
||||||
|
# - All other lines will be passed, as-is to the start.jar
|
||||||
|
#
|
||||||
|
# The files will be checked for existence before being passed to jetty.
|
||||||
|
#
|
||||||
|
# Configuration variables
|
||||||
|
#
|
||||||
|
# JAVA
|
||||||
|
# Command to invoke Java. If not set, java (from the PATH) will be used.
|
||||||
|
#
|
||||||
|
# JAVA_OPTIONS
|
||||||
|
# Extra options to pass to the JVM
|
||||||
|
#
|
||||||
|
# JETTY_HOME
|
||||||
|
# Where Jetty is installed. If not set, the script will try go
|
||||||
|
# guess it by looking at the invocation path for the script
|
||||||
|
# The java system property "jetty.home" will be
|
||||||
|
# set to this value for use by configure.xml files, f.e.:
|
||||||
|
#
|
||||||
|
# <Arg><Property name="jetty.home" default="."/>/webapps/jetty.war</Arg>
|
||||||
|
#
|
||||||
|
# JETTY_BASE
|
||||||
|
# Where your Jetty base directory is. If not set, the value from
|
||||||
|
# $JETTY_HOME will be used.
|
||||||
|
#
|
||||||
|
# JETTY_RUN
|
||||||
|
# Where the $NAME.pid file should be stored. It defaults to the
|
||||||
|
# first available of /var/run, /usr/var/run, JETTY_BASE and /tmp
|
||||||
|
# if not set.
|
||||||
|
#
|
||||||
|
# JETTY_PID
|
||||||
|
# The Jetty PID file, defaults to $JETTY_RUN/$NAME.pid
|
||||||
|
#
|
||||||
|
# JETTY_ARGS
|
||||||
|
# The default arguments to pass to jetty.
|
||||||
|
# For example
|
||||||
|
# JETTY_ARGS=jetty.http.port=8080 jetty.ssl.port=8443
|
||||||
|
#
|
||||||
|
# JETTY_USER
|
||||||
|
# if set, then used as a username to run the server as
|
||||||
|
#
|
||||||
|
# JETTY_SHELL
|
||||||
|
# If set, then used as the shell by su when starting the server. Will have
|
||||||
|
# no effect if start-stop-daemon exists. Useful when JETTY_USER does not
|
||||||
|
# have shell access, e.g. /bin/false
|
||||||
|
#
|
||||||
|
# JETTY_START_TIMEOUT
|
||||||
|
# Time spent waiting to see if startup was successful/failed. Defaults to 60 seconds
|
||||||
|
#
|
||||||
|
|
||||||
|
usage()
|
||||||
|
{
|
||||||
|
echo "Usage: ${0##*/} [-d] {start|stop|run|restart|check|supervise} [ CONFIGS ... ] "
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
[ $# -gt 0 ] || usage
|
||||||
|
|
||||||
|
|
||||||
|
##################################################
|
||||||
|
# Some utility functions
|
||||||
|
##################################################
|
||||||
|
findDirectory()
|
||||||
|
{
|
||||||
|
local L OP=$1
|
||||||
|
shift
|
||||||
|
for L in "$@"; do
|
||||||
|
[ "$OP" "$L" ] || continue
|
||||||
|
printf %s "$L"
|
||||||
|
break
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
running()
|
||||||
|
{
|
||||||
|
if [ -f "$1" ]
|
||||||
|
then
|
||||||
|
local PID=$(cat "$1" 2>/dev/null) || return 1
|
||||||
|
kill -0 "$PID" 2>/dev/null
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
rm -f "$1"
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
started()
|
||||||
|
{
|
||||||
|
# wait for 60s to see "STARTED" in PID file, needs jetty-started.xml as argument
|
||||||
|
for ((T = 0; T < $(($3 / 4)); T++))
|
||||||
|
do
|
||||||
|
sleep 4
|
||||||
|
[ -z "$(grep STARTED $1 2>/dev/null)" ] || return 0
|
||||||
|
[ -z "$(grep STOPPED $1 2>/dev/null)" ] || return 1
|
||||||
|
[ -z "$(grep FAILED $1 2>/dev/null)" ] || return 1
|
||||||
|
local PID=$(cat "$2" 2>/dev/null) || return 1
|
||||||
|
kill -0 "$PID" 2>/dev/null || return 1
|
||||||
|
echo -n ". "
|
||||||
|
done
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
readConfig()
|
||||||
|
{
|
||||||
|
(( DEBUG )) && echo "Reading $1.."
|
||||||
|
source "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
dumpEnv()
|
||||||
|
{
|
||||||
|
echo "JAVA = $JAVA"
|
||||||
|
echo "JAVA_OPTIONS = ${JAVA_OPTIONS[*]}"
|
||||||
|
echo "JETTY_HOME = $JETTY_HOME"
|
||||||
|
echo "JETTY_BASE = $JETTY_BASE"
|
||||||
|
echo "START_D = $START_D"
|
||||||
|
echo "START_INI = $START_INI"
|
||||||
|
echo "JETTY_START = $JETTY_START"
|
||||||
|
echo "JETTY_CONF = $JETTY_CONF"
|
||||||
|
echo "JETTY_ARGS = ${JETTY_ARGS[*]}"
|
||||||
|
echo "JETTY_RUN = $JETTY_RUN"
|
||||||
|
echo "JETTY_PID = $JETTY_PID"
|
||||||
|
echo "JETTY_START_LOG = $JETTY_START_LOG"
|
||||||
|
echo "JETTY_STATE = $JETTY_STATE"
|
||||||
|
echo "JETTY_START_TIMEOUT = $JETTY_START_TIMEOUT"
|
||||||
|
echo "RUN_CMD = ${RUN_CMD[*]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##################################################
|
||||||
|
# Get the action & configs
|
||||||
|
##################################################
|
||||||
|
CONFIGS=()
|
||||||
|
NO_START=0
|
||||||
|
DEBUG=0
|
||||||
|
|
||||||
|
while [[ $1 = -* ]]; do
|
||||||
|
case $1 in
|
||||||
|
-d) DEBUG=1 ;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
ACTION=$1
|
||||||
|
shift
|
||||||
|
|
||||||
|
##################################################
|
||||||
|
# Read any configuration files
|
||||||
|
##################################################
|
||||||
|
ETC=/etc
|
||||||
|
if [ $UID != 0 ]
|
||||||
|
then
|
||||||
|
ETC=$HOME/etc
|
||||||
|
fi
|
||||||
|
|
||||||
|
for CONFIG in {/etc,~/etc}/default/${NAME}{,9} $HOME/.${NAME}rc; do
|
||||||
|
if [ -f "$CONFIG" ] ; then
|
||||||
|
readConfig "$CONFIG"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
##################################################
|
||||||
|
# Set tmp if not already set.
|
||||||
|
##################################################
|
||||||
|
TMPDIR=${TMPDIR:-/tmp}
|
||||||
|
|
||||||
|
##################################################
|
||||||
|
# Jetty's hallmark
|
||||||
|
##################################################
|
||||||
|
JETTY_INSTALL_TRACE_FILE="start.jar"
|
||||||
|
|
||||||
|
|
||||||
|
##################################################
|
||||||
|
# Try to determine JETTY_HOME if not set
|
||||||
|
##################################################
|
||||||
|
if [ -z "$JETTY_HOME" ]
|
||||||
|
then
|
||||||
|
JETTY_SH=$0
|
||||||
|
case "$JETTY_SH" in
|
||||||
|
/*) JETTY_HOME=${JETTY_SH%/*/*} ;;
|
||||||
|
./*/*) JETTY_HOME=${JETTY_SH%/*/*} ;;
|
||||||
|
./*) JETTY_HOME=.. ;;
|
||||||
|
*/*/*) JETTY_HOME=./${JETTY_SH%/*/*} ;;
|
||||||
|
*/*) JETTY_HOME=. ;;
|
||||||
|
*) JETTY_HOME=.. ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ ! -f "$JETTY_HOME/$JETTY_INSTALL_TRACE_FILE" ]
|
||||||
|
then
|
||||||
|
JETTY_HOME=
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
##################################################
|
||||||
|
# No JETTY_HOME yet? We're out of luck!
|
||||||
|
##################################################
|
||||||
|
if [ -z "$JETTY_HOME" ]; then
|
||||||
|
echo "** ERROR: JETTY_HOME not set, you need to set it or install in a standard location"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "$JETTY_HOME"
|
||||||
|
JETTY_HOME=$PWD
|
||||||
|
|
||||||
|
|
||||||
|
##################################################
|
||||||
|
# Set JETTY_BASE
|
||||||
|
##################################################
|
||||||
|
if [ -z "$JETTY_BASE" ]; then
|
||||||
|
JETTY_BASE=$JETTY_HOME
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "$JETTY_BASE"
|
||||||
|
JETTY_BASE=$PWD
|
||||||
|
|
||||||
|
|
||||||
|
#####################################################
|
||||||
|
# Check that jetty is where we think it is
|
||||||
|
#####################################################
|
||||||
|
if [ ! -r "$JETTY_HOME/$JETTY_INSTALL_TRACE_FILE" ]
|
||||||
|
then
|
||||||
|
echo "** ERROR: Oops! Jetty doesn't appear to be installed in $JETTY_HOME"
|
||||||
|
echo "** ERROR: $JETTY_HOME/$JETTY_INSTALL_TRACE_FILE is not readable!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
##################################################
|
||||||
|
# Try to find this script's configuration file,
|
||||||
|
# but only if no configurations were given on the
|
||||||
|
# command line.
|
||||||
|
##################################################
|
||||||
|
if [ -z "$JETTY_CONF" ]
|
||||||
|
then
|
||||||
|
if [ -f $ETC/${NAME}.conf ]
|
||||||
|
then
|
||||||
|
JETTY_CONF=$ETC/${NAME}.conf
|
||||||
|
elif [ -f "$JETTY_BASE/etc/jetty.conf" ]
|
||||||
|
then
|
||||||
|
JETTY_CONF=$JETTY_BASE/etc/jetty.conf
|
||||||
|
elif [ -f "$JETTY_HOME/etc/jetty.conf" ]
|
||||||
|
then
|
||||||
|
JETTY_CONF=$JETTY_HOME/etc/jetty.conf
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
#####################################################
|
||||||
|
# Find a location for the pid file
|
||||||
|
#####################################################
|
||||||
|
if [ -z "$JETTY_RUN" ]
|
||||||
|
then
|
||||||
|
JETTY_RUN=$(findDirectory -w /var/run /usr/var/run $JETTY_BASE /tmp)/jetty
|
||||||
|
[ -d "$JETTY_RUN" ] || mkdir $JETTY_RUN
|
||||||
|
fi
|
||||||
|
|
||||||
|
#####################################################
|
||||||
|
# define start log location
|
||||||
|
#####################################################
|
||||||
|
if [ -z "$JETTY_START_LOG" ]
|
||||||
|
then
|
||||||
|
JETTY_START_LOG="$JETTY_RUN/$NAME-start.log"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#####################################################
|
||||||
|
# Find a pid and state file
|
||||||
|
#####################################################
|
||||||
|
if [ -z "$JETTY_PID" ]
|
||||||
|
then
|
||||||
|
JETTY_PID="$JETTY_RUN/${NAME}.pid"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$JETTY_STATE" ]
|
||||||
|
then
|
||||||
|
JETTY_STATE=$JETTY_BASE/${NAME}.state
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "`uname`" in
|
||||||
|
CYGWIN*) JETTY_STATE="`cygpath -w $JETTY_STATE`";;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
JETTY_ARGS=(${JETTY_ARGS[*]} "jetty.state=$JETTY_STATE")
|
||||||
|
|
||||||
|
##################################################
|
||||||
|
# Get the list of config.xml files from jetty.conf
|
||||||
|
##################################################
|
||||||
|
if [ -f "$JETTY_CONF" ] && [ -r "$JETTY_CONF" ]
|
||||||
|
then
|
||||||
|
while read -r CONF
|
||||||
|
do
|
||||||
|
if expr "$CONF" : '#' >/dev/null ; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d "$CONF" ]
|
||||||
|
then
|
||||||
|
# assume it's a directory with configure.xml files
|
||||||
|
# for example: /etc/jetty.d/
|
||||||
|
# sort the files before adding them to the list of JETTY_ARGS
|
||||||
|
for XMLFILE in "$CONF/"*.xml
|
||||||
|
do
|
||||||
|
if [ -r "$XMLFILE" ] && [ -f "$XMLFILE" ]
|
||||||
|
then
|
||||||
|
JETTY_ARGS=(${JETTY_ARGS[*]} "$XMLFILE")
|
||||||
|
else
|
||||||
|
echo "** WARNING: Cannot read '$XMLFILE' specified in '$JETTY_CONF'"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
else
|
||||||
|
# assume it's a command line parameter (let start.jar deal with its validity)
|
||||||
|
JETTY_ARGS=(${JETTY_ARGS[*]} "$CONF")
|
||||||
|
fi
|
||||||
|
done < "$JETTY_CONF"
|
||||||
|
fi
|
||||||
|
|
||||||
|
##################################################
|
||||||
|
# Setup JAVA if unset
|
||||||
|
##################################################
|
||||||
|
if [ -z "$JAVA" ]
|
||||||
|
then
|
||||||
|
JAVA=$(which java)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$JAVA" ]
|
||||||
|
then
|
||||||
|
echo "Cannot find a Java JDK. Please set either set JAVA or put java (>=1.5) in your PATH." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
#####################################################
|
||||||
|
# See if Deprecated JETTY_LOGS is defined
|
||||||
|
#####################################################
|
||||||
|
if [ "$JETTY_LOGS" ]
|
||||||
|
then
|
||||||
|
echo "** WARNING: JETTY_LOGS is Deprecated. Please configure logging within the jetty base." >&2
|
||||||
|
fi
|
||||||
|
|
||||||
|
#####################################################
|
||||||
|
# Set STARTED timeout
|
||||||
|
#####################################################
|
||||||
|
if [ -z "$JETTY_START_TIMEOUT"]
|
||||||
|
then
|
||||||
|
JETTY_START_TIMEOUT=60
|
||||||
|
fi
|
||||||
|
|
||||||
|
#####################################################
|
||||||
|
# Are we running on Windows? Could be, with Cygwin/NT.
|
||||||
|
#####################################################
|
||||||
|
case "`uname`" in
|
||||||
|
CYGWIN*) PATH_SEPARATOR=";";;
|
||||||
|
*) PATH_SEPARATOR=":";;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
#####################################################
|
||||||
|
# Add jetty properties to Java VM options.
|
||||||
|
#####################################################
|
||||||
|
|
||||||
|
case "`uname`" in
|
||||||
|
CYGWIN*)
|
||||||
|
JETTY_HOME="`cygpath -w $JETTY_HOME`"
|
||||||
|
JETTY_BASE="`cygpath -w $JETTY_BASE`"
|
||||||
|
TMPDIR="`cygpath -w $TMPDIR`"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
JAVA_OPTIONS=(${JAVA_OPTIONS[*]} "-Djetty.home=$JETTY_HOME" "-Djetty.base=$JETTY_BASE" "-Djava.io.tmpdir=$TMPDIR")
|
||||||
|
|
||||||
|
#####################################################
|
||||||
|
# This is how the Jetty server will be started
|
||||||
|
#####################################################
|
||||||
|
|
||||||
|
JETTY_START=$JETTY_HOME/start.jar
|
||||||
|
START_INI=$JETTY_BASE/start.ini
|
||||||
|
START_D=$JETTY_BASE/start.d
|
||||||
|
if [ ! -f "$START_INI" -a ! -d "$START_D" ]
|
||||||
|
then
|
||||||
|
echo "Cannot find a start.ini file or a start.d directory in your JETTY_BASE directory: $JETTY_BASE" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "`uname`" in
|
||||||
|
CYGWIN*) JETTY_START="`cygpath -w $JETTY_START`";;
|
||||||
|
esac
|
||||||
|
|
||||||
|
RUN_ARGS=(${JAVA_OPTIONS[@]} -jar "$JETTY_START" ${JETTY_ARGS[*]})
|
||||||
|
RUN_CMD=("$JAVA" ${RUN_ARGS[@]})
|
||||||
|
|
||||||
|
#####################################################
|
||||||
|
# Comment these out after you're happy with what
|
||||||
|
# the script is doing.
|
||||||
|
#####################################################
|
||||||
|
if (( DEBUG ))
|
||||||
|
then
|
||||||
|
dumpEnv
|
||||||
|
fi
|
||||||
|
|
||||||
|
##################################################
|
||||||
|
# Do the action
|
||||||
|
##################################################
|
||||||
|
case "$ACTION" in
|
||||||
|
start)
|
||||||
|
echo -n "Starting Jetty: "
|
||||||
|
|
||||||
|
if (( NO_START )); then
|
||||||
|
echo "Not starting ${NAME} - NO_START=1";
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $UID -eq 0 ] && type start-stop-daemon > /dev/null 2>&1
|
||||||
|
then
|
||||||
|
unset CH_USER
|
||||||
|
if [ -n "$JETTY_USER" ]
|
||||||
|
then
|
||||||
|
CH_USER="-c$JETTY_USER"
|
||||||
|
fi
|
||||||
|
|
||||||
|
start-stop-daemon -S -p"$JETTY_PID" $CH_USER -d"$JETTY_BASE" -b -m -a "$JAVA" -- "${RUN_ARGS[@]}" start-log-file="$JETTY_START_LOG"
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
if running $JETTY_PID
|
||||||
|
then
|
||||||
|
echo "Already Running $(cat $JETTY_PID)!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$JETTY_USER" ] && [ `whoami` != "$JETTY_USER" ]
|
||||||
|
then
|
||||||
|
unset SU_SHELL
|
||||||
|
if [ "$JETTY_SHELL" ]
|
||||||
|
then
|
||||||
|
SU_SHELL="-s $JETTY_SHELL"
|
||||||
|
fi
|
||||||
|
|
||||||
|
touch "$JETTY_PID"
|
||||||
|
chown "$JETTY_USER" "$JETTY_PID"
|
||||||
|
# FIXME: Broken solution: wordsplitting, pathname expansion, arbitrary command execution, etc.
|
||||||
|
su - "$JETTY_USER" $SU_SHELL -c "
|
||||||
|
cd \"$JETTY_BASE\"
|
||||||
|
exec ${RUN_CMD[*]} start-log-file=\"$JETTY_START_LOG\" > /dev/null &
|
||||||
|
disown \$!
|
||||||
|
echo \$! > \"$JETTY_PID\""
|
||||||
|
else
|
||||||
|
"${RUN_CMD[@]}" > /dev/null &
|
||||||
|
disown $!
|
||||||
|
echo $! > "$JETTY_PID"
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
if expr "${JETTY_ARGS[*]}" : '.*jetty-started.xml.*' >/dev/null
|
||||||
|
then
|
||||||
|
if started "$JETTY_STATE" "$JETTY_PID" "$JETTY_START_TIMEOUT"
|
||||||
|
then
|
||||||
|
echo "OK `date`"
|
||||||
|
else
|
||||||
|
echo "FAILED `date`"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "ok `date`"
|
||||||
|
fi
|
||||||
|
|
||||||
|
;;
|
||||||
|
|
||||||
|
stop)
|
||||||
|
echo -n "Stopping Jetty: "
|
||||||
|
if [ $UID -eq 0 ] && type start-stop-daemon > /dev/null 2>&1; then
|
||||||
|
start-stop-daemon -K -p"$JETTY_PID" -d"$JETTY_HOME" -a "$JAVA" -s HUP
|
||||||
|
|
||||||
|
TIMEOUT=30
|
||||||
|
while running "$JETTY_PID"; do
|
||||||
|
if (( TIMEOUT-- == 0 )); then
|
||||||
|
start-stop-daemon -K -p"$JETTY_PID" -d"$JETTY_HOME" -a "$JAVA" -s KILL
|
||||||
|
fi
|
||||||
|
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
else
|
||||||
|
if [ ! -f "$JETTY_PID" ] ; then
|
||||||
|
echo "ERROR: no pid found at $JETTY_PID"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
PID=$(cat "$JETTY_PID" 2>/dev/null)
|
||||||
|
if [ -z "$PID" ] ; then
|
||||||
|
echo "ERROR: no pid id found in $JETTY_PID"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
kill "$PID" 2>/dev/null
|
||||||
|
|
||||||
|
TIMEOUT=30
|
||||||
|
while running $JETTY_PID; do
|
||||||
|
if (( TIMEOUT-- == 0 )); then
|
||||||
|
kill -KILL "$PID" 2>/dev/null
|
||||||
|
fi
|
||||||
|
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f "$JETTY_PID"
|
||||||
|
rm -f "$JETTY_STATE"
|
||||||
|
echo OK
|
||||||
|
|
||||||
|
;;
|
||||||
|
|
||||||
|
restart)
|
||||||
|
JETTY_SH=$0
|
||||||
|
> "$JETTY_STATE"
|
||||||
|
if [ ! -f $JETTY_SH ]; then
|
||||||
|
if [ ! -f $JETTY_HOME/bin/jetty.sh ]; then
|
||||||
|
echo "$JETTY_HOME/bin/jetty.sh does not exist."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
JETTY_SH=$JETTY_HOME/bin/jetty.sh
|
||||||
|
fi
|
||||||
|
|
||||||
|
"$JETTY_SH" stop "$@"
|
||||||
|
"$JETTY_SH" start "$@"
|
||||||
|
|
||||||
|
;;
|
||||||
|
|
||||||
|
supervise)
|
||||||
|
#
|
||||||
|
# Under control of daemontools supervise monitor which
|
||||||
|
# handles restarts and shutdowns via the svc program.
|
||||||
|
#
|
||||||
|
exec "${RUN_CMD[@]}"
|
||||||
|
|
||||||
|
;;
|
||||||
|
|
||||||
|
run|demo)
|
||||||
|
echo "Running Jetty: "
|
||||||
|
|
||||||
|
if running "$JETTY_PID"
|
||||||
|
then
|
||||||
|
echo Already Running $(cat "$JETTY_PID")!
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
exec "${RUN_CMD[@]}"
|
||||||
|
;;
|
||||||
|
|
||||||
|
check|status)
|
||||||
|
if running "$JETTY_PID"
|
||||||
|
then
|
||||||
|
echo "Jetty running pid=$(< "$JETTY_PID")"
|
||||||
|
else
|
||||||
|
echo "Jetty NOT running"
|
||||||
|
fi
|
||||||
|
echo
|
||||||
|
dumpEnv
|
||||||
|
echo
|
||||||
|
|
||||||
|
if running "$JETTY_PID"
|
||||||
|
then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
exit 1
|
||||||
|
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
usage
|
||||||
|
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
|
@ -0,0 +1,3 @@
|
||||||
|
Manifest-Version: 1.0
|
||||||
|
Class-Path:
|
||||||
|
|
Loading…
Reference in New Issue