* merge the jsvc into tomcat-sysd code, the -jsvc-sysd is a symlink
* properly use jsvc with pid file to start and stop OBS-URL: https://build.opensuse.org/package/show/Java:packages/tomcat?expand=0&rev=6
This commit is contained in:
parent
a1a7392be9
commit
3b8b9e494f
@ -1,17 +1,18 @@
|
|||||||
# Systemd unit file for tomcat
|
# Systemd unit file for tomcat
|
||||||
#
|
#
|
||||||
# To create clones of this service:
|
# You can clone this service by:
|
||||||
# 1) By default SERVICE_NAME=tomcat. When cloned, the value must be defined
|
# 1.) Add a new EnvironmentFile declaring the new values for CATALINA_BASE
|
||||||
# before tomcat-sysd is called.
|
# and others
|
||||||
# 2) Create /etc/sysconfig/${SERVICE_NAME} from /etc/sysconfig/tomcat
|
# 2.) Define new Environment=JSVC_PIDFILE=/var/run/tomcat-foo.pid if you want
|
||||||
# to override tomcat defaults
|
# to run more than one service
|
||||||
|
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Apache Tomcat Web Application Container JSVC wrapper
|
Description=Apache Tomcat Web Application Container JSVC wrapper
|
||||||
After=syslog.target network.target
|
After=network.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=forking
|
Type=simple
|
||||||
|
EnvironmentFile=/etc/tomcat/tomcat.conf
|
||||||
ExecStart=/usr/sbin/tomcat-jsvc-sysd start
|
ExecStart=/usr/sbin/tomcat-jsvc-sysd start
|
||||||
ExecStop=/usr/sbin/tomcat-jsvc-sysd stop
|
ExecStop=/usr/sbin/tomcat-jsvc-sysd stop
|
||||||
|
|
||||||
|
@ -1,83 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
if [ -r /usr/share/java-utils/java-functions ]; then
|
|
||||||
. /usr/share/java-utils/java-functions
|
|
||||||
else
|
|
||||||
echo "Can't read Java functions library, aborting"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Get the tomcat config (use this for environment specific settings)
|
|
||||||
#if [ -z "${TOMCAT_CFG}" ]; then
|
|
||||||
# TOMCAT_CFG="/etc/tomcat/tomcat.conf"
|
|
||||||
#fi
|
|
||||||
|
|
||||||
#if [ -r "$TOMCAT_CFG" ]; then
|
|
||||||
# . $TOMCAT_CFG
|
|
||||||
#fi
|
|
||||||
|
|
||||||
set_javacmd
|
|
||||||
|
|
||||||
# CLASSPATH munging
|
|
||||||
if [ -n "$JSSE_HOME" ]; then
|
|
||||||
CLASSPATH="${CLASSPATH}:$(build-classpath jcert jnet jsse 2>/dev/null)"
|
|
||||||
fi
|
|
||||||
CLASSPATH="${CLASSPATH}:${CATALINA_HOME}/bin/bootstrap.jar"
|
|
||||||
CLASSPATH="${CLASSPATH}:${CATALINA_HOME}/bin/tomcat-juli.jar"
|
|
||||||
CLASSPATH="${CLASSPATH}:$(build-classpath commons-daemon 2>/dev/null)"
|
|
||||||
|
|
||||||
# if jsvc installed and USE_JSVC=true
|
|
||||||
# then use jsvc instead of calling java directly
|
|
||||||
if [ -x /usr/bin/jsvc ]; then
|
|
||||||
JAVACMD="/usr/bin/jsvc -nodetach -user ${TOMCAT_USER} -outfile ${CATALINA_BASE}/logs/catalina.out -errfile ${CATALINA_BASE}/logs/catalina.out"
|
|
||||||
if [ "$1" = "stop" ]; then
|
|
||||||
JAVACMD="${JAVACMD} -stop"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$1" = "start" ]; then
|
|
||||||
${JAVACMD} $JAVA_OPTS $CATALINA_OPTS \
|
|
||||||
-classpath "$CLASSPATH" \
|
|
||||||
-Dcatalina.base="$CATALINA_BASE" \
|
|
||||||
-Dcatalina.home="$CATALINA_HOME" \
|
|
||||||
-Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" \
|
|
||||||
-Djava.io.tmpdir="$CATALINA_TMPDIR" \
|
|
||||||
-Djava.util.logging.config.file="${CATALINA_BASE}/conf/logging.properties" \
|
|
||||||
-Djava.util.logging.manager="org.apache.juli.ClassLoaderLogManager" \
|
|
||||||
org.apache.catalina.startup.Bootstrap start \
|
|
||||||
>> ${CATALINA_BASE}/logs/catalina.out 2>&1 &
|
|
||||||
if [ ! -z "$CATALINA_PID" ]; then
|
|
||||||
echo $! > $CATALINA_PID
|
|
||||||
fi
|
|
||||||
elif [ "$1" = "start-security" ]; then
|
|
||||||
${JAVACMD} $JAVA_OPTS $CATALINA_OPTS \
|
|
||||||
-classpath "$CLASSPATH" \
|
|
||||||
-Dcatalina.base="$CATALINA_BASE" \
|
|
||||||
-Dcatalina.home="$CATALINA_HOME" \
|
|
||||||
-Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" \
|
|
||||||
-Djava.io.tmpdir="$CATALINA_TMPDIR" \
|
|
||||||
-Djava.security.manager \
|
|
||||||
-Djava.security.policy=="${CATALINA_BASE}/conf/catalina.policy" \
|
|
||||||
-Djava.util.logging.config.file="${CATALINA_BASE}/conf/logging.properties" \
|
|
||||||
-Djava.util.logging.manager="org.apache.juli.ClassLoaderLogManager" \
|
|
||||||
org.apache.catalina.startup.Bootstrap start \
|
|
||||||
>> ${CATALINA_BASE}/logs/catalina.out 2>&1 &
|
|
||||||
if [ ! -z "$CATALINA_PID" ]; then
|
|
||||||
echo $! > $CATALINA_PID
|
|
||||||
fi
|
|
||||||
elif [ "$1" = "stop" ]; then
|
|
||||||
${JAVACMD} $JAVA_OPTS \
|
|
||||||
-classpath "$CLASSPATH" \
|
|
||||||
-Dcatalina.base="$CATALINA_BASE" \
|
|
||||||
-Dcatalina.home="$CATALINA_HOME" \
|
|
||||||
-Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" \
|
|
||||||
-Djava.io.tmpdir="$CATALINA_TMPDIR" \
|
|
||||||
org.apache.catalina.startup.Bootstrap stop \
|
|
||||||
>> ${CATALINA_BASE}/logs/catalina.out 2>&1
|
|
||||||
elif [ "$1" = "version" ]; then
|
|
||||||
${JAVACMD} -classpath ${CATALINA_HOME}/lib/catalina.jar \
|
|
||||||
org.apache.catalina.util.ServerInfo
|
|
||||||
else
|
|
||||||
echo "Usage: $0 {start|start-security|stop|version}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
@ -1,113 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
#
|
|
||||||
# This script provides systemd activation of the tomcat service
|
|
||||||
# To create clones of this service:
|
|
||||||
# 1) SERVICE_NAME must be defined before calling this script
|
|
||||||
# 2) Create /etc/sysconfig/${SERVICE_NAME} from /etc/sysconfig/tomcat
|
|
||||||
# to override tomcat defaults
|
|
||||||
|
|
||||||
# SERVICE_NAME is a required value only if the service name is
|
|
||||||
# different from 'tomcat'
|
|
||||||
#
|
|
||||||
NAME="${SERVICE_NAME:-tomcat}"
|
|
||||||
|
|
||||||
#I'll bet this isn't required.
|
|
||||||
# unset ISBOOT
|
|
||||||
|
|
||||||
# For SELinux we need to use 'runuser' not 'su'
|
|
||||||
if [ -x "/sbin/runuser" ]; then
|
|
||||||
SU="/sbin/runuser -s /bin/sh"
|
|
||||||
else
|
|
||||||
SU="/bin/su -s /bin/sh"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Path to the tomcat launch script
|
|
||||||
TOMCAT_SCRIPT="/usr/sbin/tomcat-jsvc"
|
|
||||||
|
|
||||||
# Define the tomcat username
|
|
||||||
TOMCAT_USER="${TOMCAT_USER:-tomcat}"
|
|
||||||
|
|
||||||
# TOMCAT_LOG should be different from catalina.out.
|
|
||||||
# Usually the below config is all that is necessary
|
|
||||||
TOMCAT_LOG=/var/log/${NAME}/${SERVICE_NAME}-jsvc-sysd.log
|
|
||||||
|
|
||||||
# Get the tomcat config (use this for environment specific settings)
|
|
||||||
TOMCAT_CFG="/etc/tomcat/tomcat.conf"
|
|
||||||
if [ -r "$TOMCAT_CFG" ]; then
|
|
||||||
. $TOMCAT_CFG
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Get instance specific config file
|
|
||||||
if [ -r "/etc/sysconfig/${NAME}" ]; then
|
|
||||||
. /etc/sysconfig/${NAME}
|
|
||||||
fi
|
|
||||||
|
|
||||||
function parseOptions() {
|
|
||||||
options=""
|
|
||||||
options="$options $(
|
|
||||||
awk '!/^#/ && !/^$/ { ORS=" "; print "export ", $0, ";" }' \
|
|
||||||
$TOMCAT_CFG
|
|
||||||
)"
|
|
||||||
if [ -r "/etc/sysconfig/${NAME}" ]; then
|
|
||||||
options="$options $(
|
|
||||||
awk '!/^#/ && !/^$/ { ORS=" ";
|
|
||||||
print "export ", $0, ";" }' \
|
|
||||||
/etc/sysconfig/${NAME}
|
|
||||||
)"
|
|
||||||
fi
|
|
||||||
TOMCAT_SCRIPT="$options ${TOMCAT_SCRIPT}"
|
|
||||||
}
|
|
||||||
|
|
||||||
# See how we were called.
|
|
||||||
function start() {
|
|
||||||
# fix permissions on the log and pid files
|
|
||||||
export CATALINA_PID="/var/run/${NAME}.pid"
|
|
||||||
touch $CATALINA_PID 2>&1
|
|
||||||
if [ "$?" -eq "0" ]; then
|
|
||||||
chown ${TOMCAT_USER}:${TOMCAT_USER} $CATALINA_PID
|
|
||||||
fi
|
|
||||||
|
|
||||||
touch $TOMCAT_LOG 2>&1
|
|
||||||
if [ "$?" -eq "0" ]; then
|
|
||||||
chown ${TOMCAT_USER}:${TOMCAT_USER} $TOMCAT_LOG
|
|
||||||
fi
|
|
||||||
|
|
||||||
# if jsvc installed and USE_JSVC=true
|
|
||||||
# then start as root and use jsvc to drop privileges
|
|
||||||
if [ -x /usr/bin/jsvc ]; then
|
|
||||||
TOMCAT_USER="root"
|
|
||||||
fi
|
|
||||||
|
|
||||||
parseOptions
|
|
||||||
if [ "$SECURITY_MANAGER" = "true" ]; then
|
|
||||||
$SU - $TOMCAT_USER -c "${TOMCAT_SCRIPT} start-security" >> $TOMCAT_LOG 2>&1
|
|
||||||
else
|
|
||||||
$SU - $TOMCAT_USER -c "${TOMCAT_SCRIPT} start" >> $TOMCAT_LOG 2>&1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function stop() {
|
|
||||||
# if jsvc installed and USE_JSVC=true
|
|
||||||
# then start as root and use jsvc to drop privileges
|
|
||||||
if [ -x /usr/bin/jsvc ]; then
|
|
||||||
TOMCAT_USER="root"
|
|
||||||
fi
|
|
||||||
|
|
||||||
parseOptions
|
|
||||||
$SU - $TOMCAT_USER -c "${TOMCAT_SCRIPT} stop" >> $TOMCAT_LOG 2>&1
|
|
||||||
}
|
|
||||||
|
|
||||||
# See how we were called.
|
|
||||||
case "$1" in
|
|
||||||
start)
|
|
||||||
start
|
|
||||||
;;
|
|
||||||
stop)
|
|
||||||
stop
|
|
||||||
;;
|
|
||||||
restart)
|
|
||||||
stop
|
|
||||||
start
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
@ -1,24 +1,43 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
# This script provides systemd activation of the tomcat service
|
# This script provides systemd activation of the tomcat service and tomcat
|
||||||
# To create clones of this service:
|
# throught jsvc wrapper
|
||||||
# 1) Create /etc/tomcat/${SERVICE_NAME}.conf from /etc/tomcat/tomcat.conf
|
|
||||||
# to override tomcat defaults and add the EnvironmentFile=
|
# check the basic environment variables
|
||||||
# 2) Change the location of PIDFile=
|
if [[ -z "${CATALINA_BASE}" || \
|
||||||
|
-z "${CATALINA_HOME}" || \
|
||||||
|
-z "${CATALINA_TMPDIR}" ]]; then
|
||||||
|
|
||||||
|
echo "ERROR: one of CATALINA_BASE, CATALINA_HOME or CATALINA_TMPDIR is not defined" >&2
|
||||||
|
echo " use proper EnvironmentFile= in your .service file" >&2
|
||||||
|
exit 1
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "${0}" =~ tomcat-jsvc ]]; then
|
||||||
|
if [[ ! -x /usr/bin/jsvc ]]; then
|
||||||
|
echo "ERROR: cannot use ${0}, /usr/bin/jsvc does not exists" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
USE_JSVC=true
|
||||||
|
JSVC_PIDFILE=${JSVC_PIDFILE:-/var/run/${0##*/}}
|
||||||
|
else
|
||||||
|
USE_JSVC=false
|
||||||
|
fi
|
||||||
|
|
||||||
#### from /usr/sbin/dtomcat
|
#### from /usr/sbin/dtomcat
|
||||||
if [[ -r /usr/share/java-utils/java-functions ]]; then
|
if [[ -r /usr/share/java-utils/java-functions ]]; then
|
||||||
. /usr/share/java-utils/java-functions
|
. /usr/share/java-utils/java-functions
|
||||||
else
|
else
|
||||||
echo "Can't read Java functions library, aborting" >&2
|
echo "ERROR: Can't read Java functions library, aborting" >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
set_javacmd
|
set_javacmd
|
||||||
|
|
||||||
# CLASSPATH munging
|
# CLASSPATH munging
|
||||||
if [[ -n "$JSSE_HOME" ]]; then
|
if [[ -n "$JSSE_HOME" ]]; then
|
||||||
CLASSPATH="${CLASSPATH}:$(build-classpath jcert jnet jsse 2>/dev/null)"
|
CLASSPATH="${CLASSPATH}:$(build-classpath jcert jnet jsse 2>/dev/null)"
|
||||||
fi
|
fi
|
||||||
CLASSPATH="${CLASSPATH}:${CATALINA_HOME}/bin/bootstrap.jar"
|
CLASSPATH="${CLASSPATH}:${CATALINA_HOME}/bin/bootstrap.jar"
|
||||||
CLASSPATH="${CLASSPATH}:${CATALINA_HOME}/bin/tomcat-juli.jar"
|
CLASSPATH="${CLASSPATH}:${CATALINA_HOME}/bin/tomcat-juli.jar"
|
||||||
@ -29,8 +48,8 @@ function start() {
|
|||||||
|
|
||||||
local ret
|
local ret
|
||||||
|
|
||||||
# running as root is not recommended in any case!
|
# running as root is not allowed if not running with jsvc
|
||||||
if [[ $(id -u) == 0 ]]; then
|
if ! ${USE_JSVC} && [[ $(id -u) == 0 ]]; then
|
||||||
echo "ERROR: starting tomcat under uid 0 is not supported" >&2
|
echo "ERROR: starting tomcat under uid 0 is not supported" >&2
|
||||||
echo " use appropriate User/Group settings in service file" >&2
|
echo " use appropriate User/Group settings in service file" >&2
|
||||||
echo " see man systemd.exec for details" >&2
|
echo " see man systemd.exec for details" >&2
|
||||||
@ -38,21 +57,24 @@ function start() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$SECURITY_MANAGER" = "true" ]]; then
|
if [[ "$SECURITY_MANAGER" = "true" ]]; then
|
||||||
DSECURITY_MANAGER="-Djava.security.manager"
|
DSECURITY_MANAGER="-Djava.security.manager"
|
||||||
else
|
else
|
||||||
unset DSECURITY_MANAGER
|
unset DSECURITY_MANAGER
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ${USE_JSVC}; then
|
||||||
|
JAVACMD="/usr/bin/jsvc -pidfile ${JSVC_PIDFILE} -nodetach -user ${TOMCAT_USER:-tomcat}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
${JAVACMD} $JAVA_OPTS $CATALINA_OPTS \
|
${JAVACMD} $JAVA_OPTS $CATALINA_OPTS \
|
||||||
-classpath "$CLASSPATH" \
|
-classpath "$CLASSPATH" \
|
||||||
-Dcatalina.base="$CATALINA_BASE" \
|
-Dcatalina.base="$CATALINA_BASE" \
|
||||||
-Dcatalina.home="$CATALINA_HOME" \
|
-Dcatalina.home="$CATALINA_HOME" \
|
||||||
-Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" \
|
-Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" \
|
||||||
-Djava.io.tmpdir="$CATALINA_TMPDIR" ${DSECURITY_MANAGER} \
|
-Djava.io.tmpdir="$CATALINA_TMPDIR" ${DSECURITY_MANAGER} \
|
||||||
-Djava.util.logging.config.file="${CATALINA_BASE}/conf/logging.properties" \
|
-Djava.util.logging.config.file="${CATALINA_BASE}/conf/logging.properties" \
|
||||||
-Djava.util.logging.manager="org.apache.juli.ClassLoaderLogManager" \
|
-Djava.util.logging.manager="org.apache.juli.ClassLoaderLogManager" \
|
||||||
org.apache.catalina.startup.Bootstrap start
|
org.apache.catalina.startup.Bootstrap start
|
||||||
ret=${?}
|
ret=${?}
|
||||||
|
|
||||||
return $ret
|
return $ret
|
||||||
@ -62,17 +84,29 @@ function stop() {
|
|||||||
|
|
||||||
local ret
|
local ret
|
||||||
|
|
||||||
${JAVACMD} $JAVA_OPTS \
|
if ${USE_JSVC}; then
|
||||||
-classpath "$CLASSPATH" \
|
#XXX: foo is needed because of funny jsvc parser needs a class name
|
||||||
-Dcatalina.base="$CATALINA_BASE" \
|
/usr/bin/jsvc -stop -pidfile ${JSVC_PIDFILE} foo
|
||||||
-Dcatalina.home="$CATALINA_HOME" \
|
ret=${?}
|
||||||
-Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" \
|
|
||||||
-Djava.io.tmpdir="$CATALINA_TMPDIR" \
|
|
||||||
org.apache.catalina.startup.Bootstrap stop
|
|
||||||
ret=${?}
|
|
||||||
|
|
||||||
if [[ ret == 143 ]]; then
|
if [[ $ret == 0 ]]; then
|
||||||
ret=0
|
rm -f ${JSVC_PIDFILE}
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
${JAVACMD} $JAVA_OPTS \
|
||||||
|
-classpath "$CLASSPATH" \
|
||||||
|
-Dcatalina.base="$CATALINA_BASE" \
|
||||||
|
-Dcatalina.home="$CATALINA_HOME" \
|
||||||
|
-Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" \
|
||||||
|
-Djava.io.tmpdir="$CATALINA_TMPDIR" \
|
||||||
|
org.apache.catalina.startup.Bootstrap stop
|
||||||
|
ret=${?}
|
||||||
|
|
||||||
|
# workaround the 143 code emmited by jvm in case of sigterm
|
||||||
|
# using ExecStart=- will ignore all other failures as well
|
||||||
|
if [[ ret == 143 ]]; then
|
||||||
|
ret=0
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
return $ret
|
return $ret
|
||||||
@ -80,8 +114,8 @@ function stop() {
|
|||||||
|
|
||||||
function version() {
|
function version() {
|
||||||
|
|
||||||
exec ${JAVACMD} -classpath ${CATALINA_HOME}/lib/catalina.jar \
|
exec ${JAVACMD} -classpath ${CATALINA_HOME}/lib/catalina.jar \
|
||||||
org.apache.catalina.util.ServerInfo
|
org.apache.catalina.util.ServerInfo
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -99,9 +133,9 @@ case "$1" in
|
|||||||
;;
|
;;
|
||||||
version)
|
version)
|
||||||
version
|
version
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Usage: $0 {start|stop|restart|version}" >&2
|
echo "Usage: $0 {start|stop|restart|version}" >&2
|
||||||
exit 1
|
exit 1
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
@ -7,7 +7,6 @@ JAVA_HOME="@@@JAVAHOME@@@"
|
|||||||
# Where your tomcat installation lives
|
# Where your tomcat installation lives
|
||||||
CATALINA_BASE="@@@TCHOME@@@"
|
CATALINA_BASE="@@@TCHOME@@@"
|
||||||
CATALINA_HOME="@@@TCHOME@@@"
|
CATALINA_HOME="@@@TCHOME@@@"
|
||||||
JASPER_HOME="@@@TCHOME@@@"
|
|
||||||
CATALINA_TMPDIR="@@@TCTEMP@@@"
|
CATALINA_TMPDIR="@@@TCTEMP@@@"
|
||||||
|
|
||||||
# You can pass some parameters to java here if you wish to
|
# You can pass some parameters to java here if you wish to
|
||||||
@ -17,7 +16,10 @@ CATALINA_TMPDIR="@@@TCTEMP@@@"
|
|||||||
#JAVA_OPTS="-Djava.library.path=@@@LIBDIR@@@"
|
#JAVA_OPTS="-Djava.library.path=@@@LIBDIR@@@"
|
||||||
|
|
||||||
# What user should run tomcat
|
# What user should run tomcat
|
||||||
# WARNING: systemd will use values in tomcat.service!
|
# This value is interpreted differently
|
||||||
|
# 1.) for systemd units derived from tomcat.service, the User/Group settings is used
|
||||||
|
# 2.) for systemd units derived from tomcat-jsvc.service this value is respected (with tomcat as a default)
|
||||||
|
# 3.) for sysv init script, this value is respected (with tomcat as a default)
|
||||||
#TOMCAT_USER="tomcat"
|
#TOMCAT_USER="tomcat"
|
||||||
|
|
||||||
# You can change your tomcat locale here
|
# You can change your tomcat locale here
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
# Systemd unit file for tomcat
|
# Systemd unit file for tomcat
|
||||||
#
|
#
|
||||||
# You can clone this service by adding a new EnvironmentFile declaring the new
|
# You can clone this service by:
|
||||||
# values for CATALINA_BASE et all
|
# 1.) Add a new EnvironmentFile declaring the new values for CATALINA_BASE
|
||||||
|
# and others
|
||||||
|
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Apache Tomcat Web Application Container
|
Description=Apache Tomcat Web Application Container
|
||||||
After=syslog.target network.target
|
After=network.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
@ -13,8 +14,7 @@ EnvironmentFile=/etc/tomcat/tomcat.conf
|
|||||||
User=tomcat
|
User=tomcat
|
||||||
Group=tomcat
|
Group=tomcat
|
||||||
ExecStart=/usr/sbin/tomcat-sysd start
|
ExecStart=/usr/sbin/tomcat-sysd start
|
||||||
ExecStop=-/usr/sbin/tomcat-sysd stop
|
ExecStop=/usr/sbin/tomcat-sysd stop
|
||||||
|
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Jul 17 14:16:37 UTC 2012 - mvyskocil@suse.cz
|
Thu Jul 19 08:48:31 UTC 2012 - mvyskocil@suse.cz
|
||||||
|
|
||||||
- fix bnc#771802 - systemd support is broken
|
- fix bnc#771802 - systemd support is broken
|
||||||
* change type froking to simple as it does not make a sense run java in a
|
* change type froking to simple as it does not make a sense run java in a
|
||||||
@ -7,6 +7,8 @@ Tue Jul 17 14:16:37 UTC 2012 - mvyskocil@suse.cz
|
|||||||
* remove the need of nested wrappers, so /usr/sbin/tomcat-sysd now relies on
|
* remove the need of nested wrappers, so /usr/sbin/tomcat-sysd now relies on
|
||||||
systemd features like User/EnvironmentFile
|
systemd features like User/EnvironmentFile
|
||||||
* workaround the 143 exit code in Stop phase - return 0 in this case
|
* workaround the 143 exit code in Stop phase - return 0 in this case
|
||||||
|
* merge the jsvc into tomcat-sysd code, the -jsvc-sysd is a symlink
|
||||||
|
* properly use jsvc with pid file to start and stop
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Jun 13 12:37:49 UTC 2012 - mvyskocil@suse.cz
|
Wed Jun 13 12:37:49 UTC 2012 - mvyskocil@suse.cz
|
||||||
|
19
tomcat.spec
19
tomcat.spec
@ -61,16 +61,14 @@ Source7: %{name}-%{major_version}.%{minor_version}-tool-wrapper.script
|
|||||||
Source8: servlet-api-OSGi-MANIFEST.MF
|
Source8: servlet-api-OSGi-MANIFEST.MF
|
||||||
Source9: jsp-api-OSGi-MANIFEST.MF
|
Source9: jsp-api-OSGi-MANIFEST.MF
|
||||||
Source10: %{name}-%{major_version}.%{minor_version}-log4j.properties
|
Source10: %{name}-%{major_version}.%{minor_version}-log4j.properties
|
||||||
Source11: %{name}-%{major_version}.%{minor_version}.service
|
Source11: tomcat-7.0.service
|
||||||
Source12: el-api-OSGi-MANIFEST.MF
|
Source12: el-api-OSGi-MANIFEST.MF
|
||||||
Source13: jasper-el-OSGi-MANIFEST.MF
|
Source13: jasper-el-OSGi-MANIFEST.MF
|
||||||
Source14: jasper-OSGi-MANIFEST.MF
|
Source14: jasper-OSGi-MANIFEST.MF
|
||||||
Source15: tomcat-api-OSGi-MANIFEST.MF
|
Source15: tomcat-api-OSGi-MANIFEST.MF
|
||||||
Source16: tomcat-juli-OSGi-MANIFEST.MF
|
Source16: tomcat-juli-OSGi-MANIFEST.MF
|
||||||
Source17: tomcat-7.0-tomcat-sysd
|
Source17: tomcat-7.0-tomcat-sysd
|
||||||
Source18: %{name}-%{major_version}.%{minor_version}-tomcat-jsvc-sysd
|
Source20: tomcat-7.0-jsvc.service
|
||||||
Source19: %{name}-%{major_version}.%{minor_version}-jsvc.wrapper
|
|
||||||
Source20: %{name}-%{major_version}.%{minor_version}-jsvc.service
|
|
||||||
Source1000: tomcat-rpmlintrc
|
Source1000: tomcat-rpmlintrc
|
||||||
|
|
||||||
#PATCH-FIX-UPSTREAM: from jpackage.org package
|
#PATCH-FIX-UPSTREAM: from jpackage.org package
|
||||||
@ -189,6 +187,7 @@ Requires(postun): %{_sbindir}/update-alternatives
|
|||||||
%description jsp-2_2-api
|
%description jsp-2_2-api
|
||||||
Apache Tomcat JSP API implementation classes
|
Apache Tomcat JSP API implementation classes
|
||||||
|
|
||||||
|
%if 0%{?suse_version} > 1140
|
||||||
%package jsvc
|
%package jsvc
|
||||||
Summary: Apache jsvc wrapper for Apache Tomcat as separate service
|
Summary: Apache jsvc wrapper for Apache Tomcat as separate service
|
||||||
Group: Productivity/Networking/Web/Servers
|
Group: Productivity/Networking/Web/Servers
|
||||||
@ -199,7 +198,7 @@ Requires: apache-commons-daemon-jsvc
|
|||||||
Systemd service and wrapper scripts to start tomcat with jsvc,
|
Systemd service and wrapper scripts to start tomcat with jsvc,
|
||||||
which allows tomcat to perform some privileged operations
|
which allows tomcat to perform some privileged operations
|
||||||
(e.g. bind to a port < 1024) and then switch identity to a non-privileged user.
|
(e.g. bind to a port < 1024) and then switch identity to a non-privileged user.
|
||||||
|
%endif
|
||||||
|
|
||||||
%package lib
|
%package lib
|
||||||
Summary: Libraries needed to run the Tomcat Web container
|
Summary: Libraries needed to run the Tomcat Web container
|
||||||
@ -385,14 +384,9 @@ popd
|
|||||||
${RPM_BUILD_ROOT}%{_unitdir}/%{name}.service
|
${RPM_BUILD_ROOT}%{_unitdir}/%{name}.service
|
||||||
%{__install} -m 0644 %{SOURCE17} \
|
%{__install} -m 0644 %{SOURCE17} \
|
||||||
${RPM_BUILD_ROOT}%{_sbindir}/%{name}-sysd
|
${RPM_BUILD_ROOT}%{_sbindir}/%{name}-sysd
|
||||||
%endif
|
|
||||||
%{__install} -m 0644 %{SOURCE19} \
|
|
||||||
${RPM_BUILD_ROOT}%{_sbindir}/%{name}-jsvc
|
|
||||||
%if 0%{?suse_version} > 1140
|
|
||||||
%{__install} -m 0644 %{SOURCE20} \
|
%{__install} -m 0644 %{SOURCE20} \
|
||||||
${RPM_BUILD_ROOT}%{_unitdir}/%{name}-jsvc.service
|
${RPM_BUILD_ROOT}%{_unitdir}/%{name}-jsvc.service
|
||||||
%{__install} -m 0644 %{SOURCE18} \
|
(cd ${RPM_BUILD_ROOT}%{_sbindir}; ln -s %{name}-sysd %{name}-jsvc-sysd)
|
||||||
${RPM_BUILD_ROOT}%{_sbindir}/%{name}-jsvc-sysd
|
|
||||||
%endif
|
%endif
|
||||||
%{__sed} -e "s|\@\@\@TCLOG\@\@\@|%{logdir}|g" %{SOURCE5} \
|
%{__sed} -e "s|\@\@\@TCLOG\@\@\@|%{logdir}|g" %{SOURCE5} \
|
||||||
> ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d/%{name}
|
> ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d/%{name}
|
||||||
@ -708,10 +702,9 @@ fi
|
|||||||
%{appdir}/examples
|
%{appdir}/examples
|
||||||
%{appdir}/sample
|
%{appdir}/sample
|
||||||
|
|
||||||
|
%if 0%{?suse_version} > 1140
|
||||||
%files jsvc
|
%files jsvc
|
||||||
%defattr(755,root,root,0755)
|
%defattr(755,root,root,0755)
|
||||||
%{_sbindir}/%{name}-jsvc
|
|
||||||
%if 0%{?suse_version} > 1140
|
|
||||||
%{_sbindir}/%{name}-jsvc-sysd
|
%{_sbindir}/%{name}-jsvc-sysd
|
||||||
%attr(0644,root,root) %{_unitdir}/%{name}-jsvc.service
|
%attr(0644,root,root) %{_unitdir}/%{name}-jsvc.service
|
||||||
%endif
|
%endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user