Cleaned things up. Made things working :-) Both the startup script

in ${PREFIX}/etc/rc.d and the control script in ${PREFIX}/bin have
been refactored and now actually work very well.

Using the 'www' user and group, creating them if they don't exist.
I've used the same approach as www/apache13.

STDOUT_LOG and STDERR_LOG are now fixed (no ?= anymore) since the
package deinstall does not support a different location.

This fixes the first half of PR 28624.
See: http://www.freebsd.org/cgi/query-pr.cgi?pr=34931

Reported by:	Kees Jan Koster <k.j.koster@kpn.com>
This commit is contained in:
Ernst de Haan 2002-02-21 20:06:55 +00:00
parent e7c1eb4000
commit 229c3f67eb
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=55052
28 changed files with 734 additions and 491 deletions

View File

@ -7,6 +7,7 @@
PORTNAME= jakarta-tomcat
PORTVERSION= 3.2.4
PORTREVISION= 1
CATEGORIES= www java
MASTER_SITES= http://jakarta.apache.org/builds/jakarta-tomcat/release/v${PORTVERSION}/bin/ \
http://www.metaverse.nl/~ernst/ \
@ -25,40 +26,34 @@ LOG_DIR= ${APP_HOME}/logs
PLIST_SUB+= T=${APP_HOME:S/^${PREFIX}\///}
APP_TITLE= Jakarta Tomcat
APP_SHORTNAME= tomcat
APPCTL_NAME= ${APP_SHORTNAME}ctl
CTL_SCRIPT= ${PREFIX}/bin/${APPCTL_NAME}
CONTROL_SCRIPT_NAME= ${APP_SHORTNAME}ctl
CONTROL_SCRIPT= ${PREFIX}/bin/${CONTROL_SCRIPT_NAME}
STARTUP_ORDER?= 020
STARTUP_SCRIPT= ${PREFIX}/etc/rc.d/${STARTUP_ORDER}.${PORTNAME}.sh
JAVA_HOME?= ${LOCALBASE}/jdk1.3.1
JAVA_PORT?= ${PORTSDIR}/java/jdk13
USER_NAME?= ${APP_SHORTNAME}
GROUP_NAME?= ${USER_NAME}
USER_ID?= 7103
GROUP_ID?= ${USER_ID}
USER_NAME= www
GROUP_NAME= www
PW?= /usr/sbin/pw
LISTEN_PORT?= 8080
STDOUT_LOG?= ${LOG_DIR}/stdout.log
STDERR_LOG?= ${LOG_DIR}/stderr.log
STDOUT_LOG= ${LOG_DIR}/stdout.log
STDERR_LOG= ${LOG_DIR}/stderr.log
AUTO_START?= NO
pre-install:
@${ECHO_CMD} "Installation settings:"
@${ECHO_CMD} " Destination directory: ${APP_HOME}"
@${ECHO_CMD} " Control script location: ${CTL_SCRIPT}"
@${ECHO_CMD} " Control script location: ${CONTROL_SCRIPT}"
@${ECHO_CMD} " Startup script location: ${STARTUP_SCRIPT}"
@${ECHO_CMD} " Location of JDK: ${JAVA_HOME}"
@${ECHO_CMD} " Location of Java port: ${JAVA_PORT}"
@${ECHO_CMD} " Running as (user/group): ${USER_NAME}/${GROUP_NAME} (${USER_ID}:${GROUP_ID})"
@${ECHO_CMD} " Running as (user/group): ${USER_NAME}/${GROUP_NAME}"
@${ECHO_CMD} " Port to listen at: ${LISTEN_PORT}"
@${ECHO_CMD} " Logfile stdout: ${STDOUT_LOG}"
@${ECHO_CMD} " Logfile stderr: ${STDERR_LOG}"
@${ECHO_CMD} " Starting after install: ${AUTO_START}"
do-install:
@# Add the group and the user if they do not exist
${PW} groupadd -n ${GROUP_NAME} -g ${GROUP_ID} || true
${PW} useradd -n ${USER_NAME} -u ${USER_ID} -g ${GROUP_NAME} -c "${APP_TITLE} account" -d ${APP_HOME} -s ${SH} -h - || true
@# Create the destination directory
${MKDIR} ${APP_HOME}
@ -75,10 +70,17 @@ do-install:
> ${WRKDIR}/workers.properties
${MV} ${WRKDIR}/workers.properties ${APP_HOME}/conf/workers.properties
@# Install the startup script
${CAT} ${FILESDIR}/${PORTNAME}.sh \
| ${SED} "/%%USER_NAME%%/s//${USER_NAME}/" \
| ${SED} "/%%APP_SHORTNAME%%/s//${APP_SHORTNAME}/" \
| ${SED} "/%%CONTROL_SCRIPT%%/s//${CONTROL_SCRIPT:S/\//\\\//g}/" \
> ${STARTUP_SCRIPT}
${CHMOD} 0554 ${STARTUP_SCRIPT}
@# Install the control script
${CAT} ${FILESDIR}/${APPCTL_NAME} \
${CAT} ${FILESDIR}/${CONTROL_SCRIPT_NAME} \
| ${SED} "/%%PORTNAME%%/s//${PORTNAME}/" \
| ${SED} "/%%PORTVERSION%%/s//${PORTVERSION}/" \
| ${SED} "/%%APP_TITLE%%/s//${APP_TITLE}/" \
| ${SED} "/%%APP_SHORTNAME%%/s//${APP_SHORTNAME}/" \
| ${SED} "/%%APP_HOME%%/s//${APP_HOME:S/\//\\\//g}/" \
@ -88,13 +90,9 @@ do-install:
| ${SED} "/%%USER_NAME%%/s//${USER_NAME}/" \
| ${SED} "/%%STDOUT_LOG%%/s//${STDOUT_LOG:S/\//\\\//g}/" \
| ${SED} "/%%STDERR_LOG%%/s//${STDERR_LOG:S/\//\\\//g}/" \
> ${CTL_SCRIPT}
${CHOWN} ${USER_NAME}:${GROUP_NAME} ${CTL_SCRIPT}
${CHMOD} 6554 ${CTL_SCRIPT}
@# Install the startup script
${CP} ${FILESDIR}/${PORTNAME}.sh ${STARTUP_SCRIPT}
${CHMOD} 0554 ${STARTUP_SCRIPT}
> ${CONTROL_SCRIPT}
${CHOWN} ${USER_NAME}:${GROUP_NAME} ${CONTROL_SCRIPT}
${CHMOD} 6554 ${CONTROL_SCRIPT}
@# Create the directories that the application will create at the
@# first run
@ -115,21 +113,21 @@ do-install:
@# Install the man page
.if !defined(NOPORTDOCS)
${CAT} ${FILESDIR}/${APPCTL_NAME}.1 \
${CAT} ${FILESDIR}/${CONTROL_SCRIPT_NAME}.1 \
| ${SED} "/%%PREFIX%%/s//${PREFIX:S/\//\\\//g}/" \
> ${WRKDIR}/${APPCTL_NAME}.1
${INSTALL_MAN} ${WRKDIR}/${APPCTL_NAME}.1 ${MANPREFIX}/man/man1
> ${WRKDIR}/${CONTROL_SCRIPT_NAME}.1
${INSTALL_MAN} ${WRKDIR}/${CONTROL_SCRIPT_NAME}.1 ${MANPREFIX}/man/man1
.endif
post-install:
@${ECHO_CMD} "${APP_TITLE} ${PORTVERSION} has been installed in ${APP_HOME}."
@${ECHO_CMD} "If you would like a user to be able to use ${APPCTL_NAME}, then put this user in the group ${GROUP_NAME}."
@${ECHO_CMD} "If you would like a user to be able to use ${CONTROL_SCRIPT_NAME}, then put this user in the group ${GROUP_NAME}."
.if !defined(NOPORTDOCS)
@${ECHO_CMD} "Use 'man ${APPCTL_NAME}' for information about starting and stopping ${APP_TITLE}."
@${ECHO_CMD} "Use 'man ${CONTROL_SCRIPT_NAME}' for information about starting and stopping ${APP_TITLE}."
.endif
.if ${AUTO_START} == "YES"
@${ECHO_CMD} "Starting ${APP_TITLE}..."
@${CTL_SCRIPT} start || true
@${CONTROL_SCRIPT} start || true
.endif
.include <bsd.port.mk>

View File

@ -3,21 +3,17 @@
# Set some variables
USER_NAME=%%USER_NAME%%
MYSELF=`basename $0`
CONTROL_SCRIPT=%%CONTROL_SCRIPT%%
case "$1" in
start)
su - ${USER_NAME} -c "%%CONTROL_SCRIPT%% start" > /dev/null ; echo -n
su -f -m ${USER_NAME} -c "exec %%CONTROL_SCRIPT%% start" && echo -n ' %%APP_SHORTNAME%%'
;;
stop)
su - ${USER_NAME} -c "%%CONTROL_SCRIPT%% stop"
;;
restart)
su - ${USER_NAME} -c "%%CONTROL_SCRIPT%% restart"
su -f -m ${USER_NAME} -c "exec %%CONTROL_SCRIPT%% stop" && echo -n ' %%APP_SHORTNAME%%'
;;
*)
echo ""
echo "Usage: ${MYSELF} { start | stop | restart }"
echo "Usage: ${MYSELF} { start | stop }"
echo ""
exit 64
;;

View File

@ -1,9 +1,7 @@
#!/bin/sh
# Set some variables
VERSION=%%PORTVERSION%%
APP_HOME=%%APP_HOME%%
USER_NAME=%%USER_NAME%%
STDOUT_LOG=%%STDOUT_LOG%%
STDERR_LOG=%%STDERR_LOG%%
JAR_FILE=${APP_HOME}/lib/webserver.jar
@ -22,13 +20,6 @@ if [ -f ${JAVA_HOME}/lib/tools.jar ] ; then
CLASSPATH=${CLASSPATH}:${JAVA_HOME}/lib/tools.jar
fi
# Check if we're being run as a shell script or as an rc script
if [ ${MYSELF} = "%%RC_SCRIPT_NAME%%" ]; then
AS_RC_SCRIPT=yes
else
AS_RC_SCRIPT=no
fi
# Check if the JAVA_HOME directory is defined, otherwise set it to the
# fallback default
if [ "${JAVA_HOME}a" = "a" ]; then
@ -36,64 +27,119 @@ if [ "${JAVA_HOME}a" = "a" ]; then
fi
JAVA_CMD=${JAVA_HOME}/bin/java
# Function that starts the application
start() {
##############################################################################
# Function that shows an error message
#
# This function is called by the 'checks' function
#
# Parameters:
# 1: The message to be displayed.
error() {
echo -n "%%APP_SHORTNAME%%: ERROR: "
echo $1
}
##############################################################################
# Function that performs all checks necessary for starting or stopping the
# application.
#
# This function is called by the 'start' and 'stop' functions
#
# This function expects no parameters
checks() {
# Make sure the application directory does exist
if [ ! -d ${APP_HOME} ]; then
if [ "${AS_RC_SCRIPT}" = "yes" ]; then
echo ""
fi
echo "%%APP_SHORTNAME%%: ERROR: Unable to find %%APP_TITLE%% home directory at ${APP_HOME}."
error "Unable to find %%APP_TITLE%% home directory at ${APP_HOME}."
exit 2
fi
# Make sure the application JAR file exists
if [ ! -r ${JAR_FILE} ]; then
if [ "${AS_RC_SCRIPT}" = "yes" ]; then
echo ""
fi
echo "%%APP_SHORTNAME%%: ERROR: Unable to find %%APP_TITLE%% JAR file at ${JAR_FILE}."
error "Unable to find %%APP_TITLE%% JAR file at ${JAR_FILE}."
exit 3
fi
# Make sure the Java VM can be found
if [ ! -x ${JAVA_CMD} ]; then
if [ "${AS_RC_SCRIPT}" = "yes" ]; then
echo ""
fi
echo "%%APP_SHORTNAME%%: ERROR: Unable to find Java VM at ${JAVA_HOME}."
error "Unable to find Java VM at ${JAVA_HOME}."
exit 4
fi
if [ "${AS_RC_SCRIPT}" = "yes" ]; then
echo -n " %%APP_SHORTNAME%%"
fi
su - ${USER_NAME} -c "(cd ${APP_HOME} && ${JAVA_CMD} -cp ${CLASSPATH} -Dtomcat.home=${APP_HOME} org.apache.tomcat.startup.Tomcat) >> ${STDOUT_LOG} 2>> ${STDERR_LOG}"
}
##############################################################################
# Functions that calls the application with the specified parameter
#
# Parameters:
# 1: The argument to pass to the application (optional)
app() {
(cd ${APP_HOME} && ${JAVA_CMD} -cp ${CLASSPATH} -Dtomcat.home=${APP_HOME} org.apache.tomcat.startup.Tomcat $1 &) >> ${STDOUT_LOG} 2>> ${STDERR_LOG}
}
##############################################################################
# Function that starts the application
#
# This function is called from the main function
#
# This function expects no parameters
start() {
# Perform the checks
checks
# Stop the application
app
}
##############################################################################
# Function that stops the application
#
# This function is called from the main function
#
# This function expects no parameters
stop() {
if [ "${AS_RC_SCRIPT}" = "yes" ]; then
echo -n " %%APP_SHORTNAME%%"
fi
su - ${USER_NAME} -c "(cd ${APP_HOME} && ${JAVA_CMD} -cp ${CLASSPATH} -Dtomcat.home=${APP_HOME} org.apache.tomcat.startup.Tomcat -stop) >> ${STDOUT_LOG} 2>> ${STDERR_LOG}"
# Perform the checks
checks
# Stop the application
app -stop
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo ""
echo "Usage: ${MYSELF} { start | stop | restart }"
echo ""
exit 64
;;
esac
##############################################################################
# Main function. This function calls the 'start' and 'stop' functions.
#
# Parameters:
# 1: The argument to this shell script
main() {
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "Usage: ${MYSELF} { start | stop | restart }"
exit 64
;;
esac
}
# Call the main function and exit
main $1
exit 0

View File

@ -1,8 +1,21 @@
#!/bin/sh
PID_FILE=/var/run/jakarta-tomcat.pid
if [ -e ${PID_FILE} ]; then
echo -n "Jakarta Tomcat is still running."
/bin/kill `cat ${PID_FILE}`
rm -f ${PID_FILE}
echo " Stopped."
#
# This script does the following.
#
# Checks if the 'www' user exists. If it does, then it displays
# a message.
#
# $FreeBSD$
#
# Make sure we're called during the 'make deinstall' process
if [ "$2" != "POST-DEINSTALL" ]; then
exit 0
fi
# If the user exists, then display a message
if pw usershow "www" 2>/dev/null 1>&2; then
echo "To delete the www user permanently, use 'pw userdel www'"
fi
exit 0

View File

@ -410,5 +410,3 @@ etc/rc.d/020.jakarta-tomcat.sh
@dirrm %%T%%/conf
@dirrm %%T%%/bin
@dirrm %%T%%
@unexec pw groupdel tomcat || true
@unexec pw userdel tomcat || true

View File

@ -7,6 +7,7 @@
PORTNAME= jakarta-tomcat
PORTVERSION= 3.2.4
PORTREVISION= 1
CATEGORIES= www java
MASTER_SITES= http://jakarta.apache.org/builds/jakarta-tomcat/release/v${PORTVERSION}/bin/ \
http://www.metaverse.nl/~ernst/ \
@ -25,40 +26,34 @@ LOG_DIR= ${APP_HOME}/logs
PLIST_SUB+= T=${APP_HOME:S/^${PREFIX}\///}
APP_TITLE= Jakarta Tomcat
APP_SHORTNAME= tomcat
APPCTL_NAME= ${APP_SHORTNAME}ctl
CTL_SCRIPT= ${PREFIX}/bin/${APPCTL_NAME}
CONTROL_SCRIPT_NAME= ${APP_SHORTNAME}ctl
CONTROL_SCRIPT= ${PREFIX}/bin/${CONTROL_SCRIPT_NAME}
STARTUP_ORDER?= 020
STARTUP_SCRIPT= ${PREFIX}/etc/rc.d/${STARTUP_ORDER}.${PORTNAME}.sh
JAVA_HOME?= ${LOCALBASE}/jdk1.3.1
JAVA_PORT?= ${PORTSDIR}/java/jdk13
USER_NAME?= ${APP_SHORTNAME}
GROUP_NAME?= ${USER_NAME}
USER_ID?= 7103
GROUP_ID?= ${USER_ID}
USER_NAME= www
GROUP_NAME= www
PW?= /usr/sbin/pw
LISTEN_PORT?= 8080
STDOUT_LOG?= ${LOG_DIR}/stdout.log
STDERR_LOG?= ${LOG_DIR}/stderr.log
STDOUT_LOG= ${LOG_DIR}/stdout.log
STDERR_LOG= ${LOG_DIR}/stderr.log
AUTO_START?= NO
pre-install:
@${ECHO_CMD} "Installation settings:"
@${ECHO_CMD} " Destination directory: ${APP_HOME}"
@${ECHO_CMD} " Control script location: ${CTL_SCRIPT}"
@${ECHO_CMD} " Control script location: ${CONTROL_SCRIPT}"
@${ECHO_CMD} " Startup script location: ${STARTUP_SCRIPT}"
@${ECHO_CMD} " Location of JDK: ${JAVA_HOME}"
@${ECHO_CMD} " Location of Java port: ${JAVA_PORT}"
@${ECHO_CMD} " Running as (user/group): ${USER_NAME}/${GROUP_NAME} (${USER_ID}:${GROUP_ID})"
@${ECHO_CMD} " Running as (user/group): ${USER_NAME}/${GROUP_NAME}"
@${ECHO_CMD} " Port to listen at: ${LISTEN_PORT}"
@${ECHO_CMD} " Logfile stdout: ${STDOUT_LOG}"
@${ECHO_CMD} " Logfile stderr: ${STDERR_LOG}"
@${ECHO_CMD} " Starting after install: ${AUTO_START}"
do-install:
@# Add the group and the user if they do not exist
${PW} groupadd -n ${GROUP_NAME} -g ${GROUP_ID} || true
${PW} useradd -n ${USER_NAME} -u ${USER_ID} -g ${GROUP_NAME} -c "${APP_TITLE} account" -d ${APP_HOME} -s ${SH} -h - || true
@# Create the destination directory
${MKDIR} ${APP_HOME}
@ -75,10 +70,17 @@ do-install:
> ${WRKDIR}/workers.properties
${MV} ${WRKDIR}/workers.properties ${APP_HOME}/conf/workers.properties
@# Install the startup script
${CAT} ${FILESDIR}/${PORTNAME}.sh \
| ${SED} "/%%USER_NAME%%/s//${USER_NAME}/" \
| ${SED} "/%%APP_SHORTNAME%%/s//${APP_SHORTNAME}/" \
| ${SED} "/%%CONTROL_SCRIPT%%/s//${CONTROL_SCRIPT:S/\//\\\//g}/" \
> ${STARTUP_SCRIPT}
${CHMOD} 0554 ${STARTUP_SCRIPT}
@# Install the control script
${CAT} ${FILESDIR}/${APPCTL_NAME} \
${CAT} ${FILESDIR}/${CONTROL_SCRIPT_NAME} \
| ${SED} "/%%PORTNAME%%/s//${PORTNAME}/" \
| ${SED} "/%%PORTVERSION%%/s//${PORTVERSION}/" \
| ${SED} "/%%APP_TITLE%%/s//${APP_TITLE}/" \
| ${SED} "/%%APP_SHORTNAME%%/s//${APP_SHORTNAME}/" \
| ${SED} "/%%APP_HOME%%/s//${APP_HOME:S/\//\\\//g}/" \
@ -88,13 +90,9 @@ do-install:
| ${SED} "/%%USER_NAME%%/s//${USER_NAME}/" \
| ${SED} "/%%STDOUT_LOG%%/s//${STDOUT_LOG:S/\//\\\//g}/" \
| ${SED} "/%%STDERR_LOG%%/s//${STDERR_LOG:S/\//\\\//g}/" \
> ${CTL_SCRIPT}
${CHOWN} ${USER_NAME}:${GROUP_NAME} ${CTL_SCRIPT}
${CHMOD} 6554 ${CTL_SCRIPT}
@# Install the startup script
${CP} ${FILESDIR}/${PORTNAME}.sh ${STARTUP_SCRIPT}
${CHMOD} 0554 ${STARTUP_SCRIPT}
> ${CONTROL_SCRIPT}
${CHOWN} ${USER_NAME}:${GROUP_NAME} ${CONTROL_SCRIPT}
${CHMOD} 6554 ${CONTROL_SCRIPT}
@# Create the directories that the application will create at the
@# first run
@ -115,21 +113,21 @@ do-install:
@# Install the man page
.if !defined(NOPORTDOCS)
${CAT} ${FILESDIR}/${APPCTL_NAME}.1 \
${CAT} ${FILESDIR}/${CONTROL_SCRIPT_NAME}.1 \
| ${SED} "/%%PREFIX%%/s//${PREFIX:S/\//\\\//g}/" \
> ${WRKDIR}/${APPCTL_NAME}.1
${INSTALL_MAN} ${WRKDIR}/${APPCTL_NAME}.1 ${MANPREFIX}/man/man1
> ${WRKDIR}/${CONTROL_SCRIPT_NAME}.1
${INSTALL_MAN} ${WRKDIR}/${CONTROL_SCRIPT_NAME}.1 ${MANPREFIX}/man/man1
.endif
post-install:
@${ECHO_CMD} "${APP_TITLE} ${PORTVERSION} has been installed in ${APP_HOME}."
@${ECHO_CMD} "If you would like a user to be able to use ${APPCTL_NAME}, then put this user in the group ${GROUP_NAME}."
@${ECHO_CMD} "If you would like a user to be able to use ${CONTROL_SCRIPT_NAME}, then put this user in the group ${GROUP_NAME}."
.if !defined(NOPORTDOCS)
@${ECHO_CMD} "Use 'man ${APPCTL_NAME}' for information about starting and stopping ${APP_TITLE}."
@${ECHO_CMD} "Use 'man ${CONTROL_SCRIPT_NAME}' for information about starting and stopping ${APP_TITLE}."
.endif
.if ${AUTO_START} == "YES"
@${ECHO_CMD} "Starting ${APP_TITLE}..."
@${CTL_SCRIPT} start || true
@${CONTROL_SCRIPT} start || true
.endif
.include <bsd.port.mk>

View File

@ -3,21 +3,17 @@
# Set some variables
USER_NAME=%%USER_NAME%%
MYSELF=`basename $0`
CONTROL_SCRIPT=%%CONTROL_SCRIPT%%
case "$1" in
start)
su - ${USER_NAME} -c "%%CONTROL_SCRIPT%% start" > /dev/null ; echo -n
su -f -m ${USER_NAME} -c "exec %%CONTROL_SCRIPT%% start" && echo -n ' %%APP_SHORTNAME%%'
;;
stop)
su - ${USER_NAME} -c "%%CONTROL_SCRIPT%% stop"
;;
restart)
su - ${USER_NAME} -c "%%CONTROL_SCRIPT%% restart"
su -f -m ${USER_NAME} -c "exec %%CONTROL_SCRIPT%% stop" && echo -n ' %%APP_SHORTNAME%%'
;;
*)
echo ""
echo "Usage: ${MYSELF} { start | stop | restart }"
echo "Usage: ${MYSELF} { start | stop }"
echo ""
exit 64
;;

View File

@ -1,9 +1,7 @@
#!/bin/sh
# Set some variables
VERSION=%%PORTVERSION%%
APP_HOME=%%APP_HOME%%
USER_NAME=%%USER_NAME%%
STDOUT_LOG=%%STDOUT_LOG%%
STDERR_LOG=%%STDERR_LOG%%
JAR_FILE=${APP_HOME}/lib/webserver.jar
@ -22,13 +20,6 @@ if [ -f ${JAVA_HOME}/lib/tools.jar ] ; then
CLASSPATH=${CLASSPATH}:${JAVA_HOME}/lib/tools.jar
fi
# Check if we're being run as a shell script or as an rc script
if [ ${MYSELF} = "%%RC_SCRIPT_NAME%%" ]; then
AS_RC_SCRIPT=yes
else
AS_RC_SCRIPT=no
fi
# Check if the JAVA_HOME directory is defined, otherwise set it to the
# fallback default
if [ "${JAVA_HOME}a" = "a" ]; then
@ -36,64 +27,119 @@ if [ "${JAVA_HOME}a" = "a" ]; then
fi
JAVA_CMD=${JAVA_HOME}/bin/java
# Function that starts the application
start() {
##############################################################################
# Function that shows an error message
#
# This function is called by the 'checks' function
#
# Parameters:
# 1: The message to be displayed.
error() {
echo -n "%%APP_SHORTNAME%%: ERROR: "
echo $1
}
##############################################################################
# Function that performs all checks necessary for starting or stopping the
# application.
#
# This function is called by the 'start' and 'stop' functions
#
# This function expects no parameters
checks() {
# Make sure the application directory does exist
if [ ! -d ${APP_HOME} ]; then
if [ "${AS_RC_SCRIPT}" = "yes" ]; then
echo ""
fi
echo "%%APP_SHORTNAME%%: ERROR: Unable to find %%APP_TITLE%% home directory at ${APP_HOME}."
error "Unable to find %%APP_TITLE%% home directory at ${APP_HOME}."
exit 2
fi
# Make sure the application JAR file exists
if [ ! -r ${JAR_FILE} ]; then
if [ "${AS_RC_SCRIPT}" = "yes" ]; then
echo ""
fi
echo "%%APP_SHORTNAME%%: ERROR: Unable to find %%APP_TITLE%% JAR file at ${JAR_FILE}."
error "Unable to find %%APP_TITLE%% JAR file at ${JAR_FILE}."
exit 3
fi
# Make sure the Java VM can be found
if [ ! -x ${JAVA_CMD} ]; then
if [ "${AS_RC_SCRIPT}" = "yes" ]; then
echo ""
fi
echo "%%APP_SHORTNAME%%: ERROR: Unable to find Java VM at ${JAVA_HOME}."
error "Unable to find Java VM at ${JAVA_HOME}."
exit 4
fi
if [ "${AS_RC_SCRIPT}" = "yes" ]; then
echo -n " %%APP_SHORTNAME%%"
fi
su - ${USER_NAME} -c "(cd ${APP_HOME} && ${JAVA_CMD} -cp ${CLASSPATH} -Dtomcat.home=${APP_HOME} org.apache.tomcat.startup.Tomcat) >> ${STDOUT_LOG} 2>> ${STDERR_LOG}"
}
##############################################################################
# Functions that calls the application with the specified parameter
#
# Parameters:
# 1: The argument to pass to the application (optional)
app() {
(cd ${APP_HOME} && ${JAVA_CMD} -cp ${CLASSPATH} -Dtomcat.home=${APP_HOME} org.apache.tomcat.startup.Tomcat $1 &) >> ${STDOUT_LOG} 2>> ${STDERR_LOG}
}
##############################################################################
# Function that starts the application
#
# This function is called from the main function
#
# This function expects no parameters
start() {
# Perform the checks
checks
# Stop the application
app
}
##############################################################################
# Function that stops the application
#
# This function is called from the main function
#
# This function expects no parameters
stop() {
if [ "${AS_RC_SCRIPT}" = "yes" ]; then
echo -n " %%APP_SHORTNAME%%"
fi
su - ${USER_NAME} -c "(cd ${APP_HOME} && ${JAVA_CMD} -cp ${CLASSPATH} -Dtomcat.home=${APP_HOME} org.apache.tomcat.startup.Tomcat -stop) >> ${STDOUT_LOG} 2>> ${STDERR_LOG}"
# Perform the checks
checks
# Stop the application
app -stop
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo ""
echo "Usage: ${MYSELF} { start | stop | restart }"
echo ""
exit 64
;;
esac
##############################################################################
# Main function. This function calls the 'start' and 'stop' functions.
#
# Parameters:
# 1: The argument to this shell script
main() {
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "Usage: ${MYSELF} { start | stop | restart }"
exit 64
;;
esac
}
# Call the main function and exit
main $1
exit 0

View File

@ -1,8 +1,21 @@
#!/bin/sh
PID_FILE=/var/run/jakarta-tomcat.pid
if [ -e ${PID_FILE} ]; then
echo -n "Jakarta Tomcat is still running."
/bin/kill `cat ${PID_FILE}`
rm -f ${PID_FILE}
echo " Stopped."
#
# This script does the following.
#
# Checks if the 'www' user exists. If it does, then it displays
# a message.
#
# $FreeBSD$
#
# Make sure we're called during the 'make deinstall' process
if [ "$2" != "POST-DEINSTALL" ]; then
exit 0
fi
# If the user exists, then display a message
if pw usershow "www" 2>/dev/null 1>&2; then
echo "To delete the www user permanently, use 'pw userdel www'"
fi
exit 0

View File

@ -410,5 +410,3 @@ etc/rc.d/020.jakarta-tomcat.sh
@dirrm %%T%%/conf
@dirrm %%T%%/bin
@dirrm %%T%%
@unexec pw groupdel tomcat || true
@unexec pw userdel tomcat || true

View File

@ -7,6 +7,7 @@
PORTNAME= jakarta-tomcat
PORTVERSION= 3.2.4
PORTREVISION= 1
CATEGORIES= www java
MASTER_SITES= http://jakarta.apache.org/builds/jakarta-tomcat/release/v${PORTVERSION}/bin/ \
http://www.metaverse.nl/~ernst/ \
@ -25,40 +26,34 @@ LOG_DIR= ${APP_HOME}/logs
PLIST_SUB+= T=${APP_HOME:S/^${PREFIX}\///}
APP_TITLE= Jakarta Tomcat
APP_SHORTNAME= tomcat
APPCTL_NAME= ${APP_SHORTNAME}ctl
CTL_SCRIPT= ${PREFIX}/bin/${APPCTL_NAME}
CONTROL_SCRIPT_NAME= ${APP_SHORTNAME}ctl
CONTROL_SCRIPT= ${PREFIX}/bin/${CONTROL_SCRIPT_NAME}
STARTUP_ORDER?= 020
STARTUP_SCRIPT= ${PREFIX}/etc/rc.d/${STARTUP_ORDER}.${PORTNAME}.sh
JAVA_HOME?= ${LOCALBASE}/jdk1.3.1
JAVA_PORT?= ${PORTSDIR}/java/jdk13
USER_NAME?= ${APP_SHORTNAME}
GROUP_NAME?= ${USER_NAME}
USER_ID?= 7103
GROUP_ID?= ${USER_ID}
USER_NAME= www
GROUP_NAME= www
PW?= /usr/sbin/pw
LISTEN_PORT?= 8080
STDOUT_LOG?= ${LOG_DIR}/stdout.log
STDERR_LOG?= ${LOG_DIR}/stderr.log
STDOUT_LOG= ${LOG_DIR}/stdout.log
STDERR_LOG= ${LOG_DIR}/stderr.log
AUTO_START?= NO
pre-install:
@${ECHO_CMD} "Installation settings:"
@${ECHO_CMD} " Destination directory: ${APP_HOME}"
@${ECHO_CMD} " Control script location: ${CTL_SCRIPT}"
@${ECHO_CMD} " Control script location: ${CONTROL_SCRIPT}"
@${ECHO_CMD} " Startup script location: ${STARTUP_SCRIPT}"
@${ECHO_CMD} " Location of JDK: ${JAVA_HOME}"
@${ECHO_CMD} " Location of Java port: ${JAVA_PORT}"
@${ECHO_CMD} " Running as (user/group): ${USER_NAME}/${GROUP_NAME} (${USER_ID}:${GROUP_ID})"
@${ECHO_CMD} " Running as (user/group): ${USER_NAME}/${GROUP_NAME}"
@${ECHO_CMD} " Port to listen at: ${LISTEN_PORT}"
@${ECHO_CMD} " Logfile stdout: ${STDOUT_LOG}"
@${ECHO_CMD} " Logfile stderr: ${STDERR_LOG}"
@${ECHO_CMD} " Starting after install: ${AUTO_START}"
do-install:
@# Add the group and the user if they do not exist
${PW} groupadd -n ${GROUP_NAME} -g ${GROUP_ID} || true
${PW} useradd -n ${USER_NAME} -u ${USER_ID} -g ${GROUP_NAME} -c "${APP_TITLE} account" -d ${APP_HOME} -s ${SH} -h - || true
@# Create the destination directory
${MKDIR} ${APP_HOME}
@ -75,10 +70,17 @@ do-install:
> ${WRKDIR}/workers.properties
${MV} ${WRKDIR}/workers.properties ${APP_HOME}/conf/workers.properties
@# Install the startup script
${CAT} ${FILESDIR}/${PORTNAME}.sh \
| ${SED} "/%%USER_NAME%%/s//${USER_NAME}/" \
| ${SED} "/%%APP_SHORTNAME%%/s//${APP_SHORTNAME}/" \
| ${SED} "/%%CONTROL_SCRIPT%%/s//${CONTROL_SCRIPT:S/\//\\\//g}/" \
> ${STARTUP_SCRIPT}
${CHMOD} 0554 ${STARTUP_SCRIPT}
@# Install the control script
${CAT} ${FILESDIR}/${APPCTL_NAME} \
${CAT} ${FILESDIR}/${CONTROL_SCRIPT_NAME} \
| ${SED} "/%%PORTNAME%%/s//${PORTNAME}/" \
| ${SED} "/%%PORTVERSION%%/s//${PORTVERSION}/" \
| ${SED} "/%%APP_TITLE%%/s//${APP_TITLE}/" \
| ${SED} "/%%APP_SHORTNAME%%/s//${APP_SHORTNAME}/" \
| ${SED} "/%%APP_HOME%%/s//${APP_HOME:S/\//\\\//g}/" \
@ -88,13 +90,9 @@ do-install:
| ${SED} "/%%USER_NAME%%/s//${USER_NAME}/" \
| ${SED} "/%%STDOUT_LOG%%/s//${STDOUT_LOG:S/\//\\\//g}/" \
| ${SED} "/%%STDERR_LOG%%/s//${STDERR_LOG:S/\//\\\//g}/" \
> ${CTL_SCRIPT}
${CHOWN} ${USER_NAME}:${GROUP_NAME} ${CTL_SCRIPT}
${CHMOD} 6554 ${CTL_SCRIPT}
@# Install the startup script
${CP} ${FILESDIR}/${PORTNAME}.sh ${STARTUP_SCRIPT}
${CHMOD} 0554 ${STARTUP_SCRIPT}
> ${CONTROL_SCRIPT}
${CHOWN} ${USER_NAME}:${GROUP_NAME} ${CONTROL_SCRIPT}
${CHMOD} 6554 ${CONTROL_SCRIPT}
@# Create the directories that the application will create at the
@# first run
@ -115,21 +113,21 @@ do-install:
@# Install the man page
.if !defined(NOPORTDOCS)
${CAT} ${FILESDIR}/${APPCTL_NAME}.1 \
${CAT} ${FILESDIR}/${CONTROL_SCRIPT_NAME}.1 \
| ${SED} "/%%PREFIX%%/s//${PREFIX:S/\//\\\//g}/" \
> ${WRKDIR}/${APPCTL_NAME}.1
${INSTALL_MAN} ${WRKDIR}/${APPCTL_NAME}.1 ${MANPREFIX}/man/man1
> ${WRKDIR}/${CONTROL_SCRIPT_NAME}.1
${INSTALL_MAN} ${WRKDIR}/${CONTROL_SCRIPT_NAME}.1 ${MANPREFIX}/man/man1
.endif
post-install:
@${ECHO_CMD} "${APP_TITLE} ${PORTVERSION} has been installed in ${APP_HOME}."
@${ECHO_CMD} "If you would like a user to be able to use ${APPCTL_NAME}, then put this user in the group ${GROUP_NAME}."
@${ECHO_CMD} "If you would like a user to be able to use ${CONTROL_SCRIPT_NAME}, then put this user in the group ${GROUP_NAME}."
.if !defined(NOPORTDOCS)
@${ECHO_CMD} "Use 'man ${APPCTL_NAME}' for information about starting and stopping ${APP_TITLE}."
@${ECHO_CMD} "Use 'man ${CONTROL_SCRIPT_NAME}' for information about starting and stopping ${APP_TITLE}."
.endif
.if ${AUTO_START} == "YES"
@${ECHO_CMD} "Starting ${APP_TITLE}..."
@${CTL_SCRIPT} start || true
@${CONTROL_SCRIPT} start || true
.endif
.include <bsd.port.mk>

View File

@ -3,21 +3,17 @@
# Set some variables
USER_NAME=%%USER_NAME%%
MYSELF=`basename $0`
CONTROL_SCRIPT=%%CONTROL_SCRIPT%%
case "$1" in
start)
su - ${USER_NAME} -c "%%CONTROL_SCRIPT%% start" > /dev/null ; echo -n
su -f -m ${USER_NAME} -c "exec %%CONTROL_SCRIPT%% start" && echo -n ' %%APP_SHORTNAME%%'
;;
stop)
su - ${USER_NAME} -c "%%CONTROL_SCRIPT%% stop"
;;
restart)
su - ${USER_NAME} -c "%%CONTROL_SCRIPT%% restart"
su -f -m ${USER_NAME} -c "exec %%CONTROL_SCRIPT%% stop" && echo -n ' %%APP_SHORTNAME%%'
;;
*)
echo ""
echo "Usage: ${MYSELF} { start | stop | restart }"
echo "Usage: ${MYSELF} { start | stop }"
echo ""
exit 64
;;

View File

@ -3,21 +3,17 @@
# Set some variables
USER_NAME=%%USER_NAME%%
MYSELF=`basename $0`
CONTROL_SCRIPT=%%CONTROL_SCRIPT%%
case "$1" in
start)
su - ${USER_NAME} -c "%%CONTROL_SCRIPT%% start" > /dev/null ; echo -n
su -f -m ${USER_NAME} -c "exec %%CONTROL_SCRIPT%% start" && echo -n ' %%APP_SHORTNAME%%'
;;
stop)
su - ${USER_NAME} -c "%%CONTROL_SCRIPT%% stop"
;;
restart)
su - ${USER_NAME} -c "%%CONTROL_SCRIPT%% restart"
su -f -m ${USER_NAME} -c "exec %%CONTROL_SCRIPT%% stop" && echo -n ' %%APP_SHORTNAME%%'
;;
*)
echo ""
echo "Usage: ${MYSELF} { start | stop | restart }"
echo "Usage: ${MYSELF} { start | stop }"
echo ""
exit 64
;;

View File

@ -1,9 +1,7 @@
#!/bin/sh
# Set some variables
VERSION=%%PORTVERSION%%
APP_HOME=%%APP_HOME%%
USER_NAME=%%USER_NAME%%
STDOUT_LOG=%%STDOUT_LOG%%
STDERR_LOG=%%STDERR_LOG%%
JAR_FILE=${APP_HOME}/lib/webserver.jar
@ -22,13 +20,6 @@ if [ -f ${JAVA_HOME}/lib/tools.jar ] ; then
CLASSPATH=${CLASSPATH}:${JAVA_HOME}/lib/tools.jar
fi
# Check if we're being run as a shell script or as an rc script
if [ ${MYSELF} = "%%RC_SCRIPT_NAME%%" ]; then
AS_RC_SCRIPT=yes
else
AS_RC_SCRIPT=no
fi
# Check if the JAVA_HOME directory is defined, otherwise set it to the
# fallback default
if [ "${JAVA_HOME}a" = "a" ]; then
@ -36,64 +27,119 @@ if [ "${JAVA_HOME}a" = "a" ]; then
fi
JAVA_CMD=${JAVA_HOME}/bin/java
# Function that starts the application
start() {
##############################################################################
# Function that shows an error message
#
# This function is called by the 'checks' function
#
# Parameters:
# 1: The message to be displayed.
error() {
echo -n "%%APP_SHORTNAME%%: ERROR: "
echo $1
}
##############################################################################
# Function that performs all checks necessary for starting or stopping the
# application.
#
# This function is called by the 'start' and 'stop' functions
#
# This function expects no parameters
checks() {
# Make sure the application directory does exist
if [ ! -d ${APP_HOME} ]; then
if [ "${AS_RC_SCRIPT}" = "yes" ]; then
echo ""
fi
echo "%%APP_SHORTNAME%%: ERROR: Unable to find %%APP_TITLE%% home directory at ${APP_HOME}."
error "Unable to find %%APP_TITLE%% home directory at ${APP_HOME}."
exit 2
fi
# Make sure the application JAR file exists
if [ ! -r ${JAR_FILE} ]; then
if [ "${AS_RC_SCRIPT}" = "yes" ]; then
echo ""
fi
echo "%%APP_SHORTNAME%%: ERROR: Unable to find %%APP_TITLE%% JAR file at ${JAR_FILE}."
error "Unable to find %%APP_TITLE%% JAR file at ${JAR_FILE}."
exit 3
fi
# Make sure the Java VM can be found
if [ ! -x ${JAVA_CMD} ]; then
if [ "${AS_RC_SCRIPT}" = "yes" ]; then
echo ""
fi
echo "%%APP_SHORTNAME%%: ERROR: Unable to find Java VM at ${JAVA_HOME}."
error "Unable to find Java VM at ${JAVA_HOME}."
exit 4
fi
if [ "${AS_RC_SCRIPT}" = "yes" ]; then
echo -n " %%APP_SHORTNAME%%"
fi
su - ${USER_NAME} -c "(cd ${APP_HOME} && ${JAVA_CMD} -cp ${CLASSPATH} -Dtomcat.home=${APP_HOME} org.apache.tomcat.startup.Tomcat) >> ${STDOUT_LOG} 2>> ${STDERR_LOG}"
}
##############################################################################
# Functions that calls the application with the specified parameter
#
# Parameters:
# 1: The argument to pass to the application (optional)
app() {
(cd ${APP_HOME} && ${JAVA_CMD} -cp ${CLASSPATH} -Dtomcat.home=${APP_HOME} org.apache.tomcat.startup.Tomcat $1 &) >> ${STDOUT_LOG} 2>> ${STDERR_LOG}
}
##############################################################################
# Function that starts the application
#
# This function is called from the main function
#
# This function expects no parameters
start() {
# Perform the checks
checks
# Stop the application
app
}
##############################################################################
# Function that stops the application
#
# This function is called from the main function
#
# This function expects no parameters
stop() {
if [ "${AS_RC_SCRIPT}" = "yes" ]; then
echo -n " %%APP_SHORTNAME%%"
fi
su - ${USER_NAME} -c "(cd ${APP_HOME} && ${JAVA_CMD} -cp ${CLASSPATH} -Dtomcat.home=${APP_HOME} org.apache.tomcat.startup.Tomcat -stop) >> ${STDOUT_LOG} 2>> ${STDERR_LOG}"
# Perform the checks
checks
# Stop the application
app -stop
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo ""
echo "Usage: ${MYSELF} { start | stop | restart }"
echo ""
exit 64
;;
esac
##############################################################################
# Main function. This function calls the 'start' and 'stop' functions.
#
# Parameters:
# 1: The argument to this shell script
main() {
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "Usage: ${MYSELF} { start | stop | restart }"
exit 64
;;
esac
}
# Call the main function and exit
main $1
exit 0

View File

@ -1,8 +1,21 @@
#!/bin/sh
PID_FILE=/var/run/jakarta-tomcat.pid
if [ -e ${PID_FILE} ]; then
echo -n "Jakarta Tomcat is still running."
/bin/kill `cat ${PID_FILE}`
rm -f ${PID_FILE}
echo " Stopped."
#
# This script does the following.
#
# Checks if the 'www' user exists. If it does, then it displays
# a message.
#
# $FreeBSD$
#
# Make sure we're called during the 'make deinstall' process
if [ "$2" != "POST-DEINSTALL" ]; then
exit 0
fi
# If the user exists, then display a message
if pw usershow "www" 2>/dev/null 1>&2; then
echo "To delete the www user permanently, use 'pw userdel www'"
fi
exit 0

View File

@ -410,5 +410,3 @@ etc/rc.d/020.jakarta-tomcat.sh
@dirrm %%T%%/conf
@dirrm %%T%%/bin
@dirrm %%T%%
@unexec pw groupdel tomcat || true
@unexec pw userdel tomcat || true

View File

@ -7,6 +7,7 @@
PORTNAME= jakarta-tomcat
PORTVERSION= 3.2.4
PORTREVISION= 1
CATEGORIES= www java
MASTER_SITES= http://jakarta.apache.org/builds/jakarta-tomcat/release/v${PORTVERSION}/bin/ \
http://www.metaverse.nl/~ernst/ \
@ -25,40 +26,34 @@ LOG_DIR= ${APP_HOME}/logs
PLIST_SUB+= T=${APP_HOME:S/^${PREFIX}\///}
APP_TITLE= Jakarta Tomcat
APP_SHORTNAME= tomcat
APPCTL_NAME= ${APP_SHORTNAME}ctl
CTL_SCRIPT= ${PREFIX}/bin/${APPCTL_NAME}
CONTROL_SCRIPT_NAME= ${APP_SHORTNAME}ctl
CONTROL_SCRIPT= ${PREFIX}/bin/${CONTROL_SCRIPT_NAME}
STARTUP_ORDER?= 020
STARTUP_SCRIPT= ${PREFIX}/etc/rc.d/${STARTUP_ORDER}.${PORTNAME}.sh
JAVA_HOME?= ${LOCALBASE}/jdk1.3.1
JAVA_PORT?= ${PORTSDIR}/java/jdk13
USER_NAME?= ${APP_SHORTNAME}
GROUP_NAME?= ${USER_NAME}
USER_ID?= 7103
GROUP_ID?= ${USER_ID}
USER_NAME= www
GROUP_NAME= www
PW?= /usr/sbin/pw
LISTEN_PORT?= 8080
STDOUT_LOG?= ${LOG_DIR}/stdout.log
STDERR_LOG?= ${LOG_DIR}/stderr.log
STDOUT_LOG= ${LOG_DIR}/stdout.log
STDERR_LOG= ${LOG_DIR}/stderr.log
AUTO_START?= NO
pre-install:
@${ECHO_CMD} "Installation settings:"
@${ECHO_CMD} " Destination directory: ${APP_HOME}"
@${ECHO_CMD} " Control script location: ${CTL_SCRIPT}"
@${ECHO_CMD} " Control script location: ${CONTROL_SCRIPT}"
@${ECHO_CMD} " Startup script location: ${STARTUP_SCRIPT}"
@${ECHO_CMD} " Location of JDK: ${JAVA_HOME}"
@${ECHO_CMD} " Location of Java port: ${JAVA_PORT}"
@${ECHO_CMD} " Running as (user/group): ${USER_NAME}/${GROUP_NAME} (${USER_ID}:${GROUP_ID})"
@${ECHO_CMD} " Running as (user/group): ${USER_NAME}/${GROUP_NAME}"
@${ECHO_CMD} " Port to listen at: ${LISTEN_PORT}"
@${ECHO_CMD} " Logfile stdout: ${STDOUT_LOG}"
@${ECHO_CMD} " Logfile stderr: ${STDERR_LOG}"
@${ECHO_CMD} " Starting after install: ${AUTO_START}"
do-install:
@# Add the group and the user if they do not exist
${PW} groupadd -n ${GROUP_NAME} -g ${GROUP_ID} || true
${PW} useradd -n ${USER_NAME} -u ${USER_ID} -g ${GROUP_NAME} -c "${APP_TITLE} account" -d ${APP_HOME} -s ${SH} -h - || true
@# Create the destination directory
${MKDIR} ${APP_HOME}
@ -75,10 +70,17 @@ do-install:
> ${WRKDIR}/workers.properties
${MV} ${WRKDIR}/workers.properties ${APP_HOME}/conf/workers.properties
@# Install the startup script
${CAT} ${FILESDIR}/${PORTNAME}.sh \
| ${SED} "/%%USER_NAME%%/s//${USER_NAME}/" \
| ${SED} "/%%APP_SHORTNAME%%/s//${APP_SHORTNAME}/" \
| ${SED} "/%%CONTROL_SCRIPT%%/s//${CONTROL_SCRIPT:S/\//\\\//g}/" \
> ${STARTUP_SCRIPT}
${CHMOD} 0554 ${STARTUP_SCRIPT}
@# Install the control script
${CAT} ${FILESDIR}/${APPCTL_NAME} \
${CAT} ${FILESDIR}/${CONTROL_SCRIPT_NAME} \
| ${SED} "/%%PORTNAME%%/s//${PORTNAME}/" \
| ${SED} "/%%PORTVERSION%%/s//${PORTVERSION}/" \
| ${SED} "/%%APP_TITLE%%/s//${APP_TITLE}/" \
| ${SED} "/%%APP_SHORTNAME%%/s//${APP_SHORTNAME}/" \
| ${SED} "/%%APP_HOME%%/s//${APP_HOME:S/\//\\\//g}/" \
@ -88,13 +90,9 @@ do-install:
| ${SED} "/%%USER_NAME%%/s//${USER_NAME}/" \
| ${SED} "/%%STDOUT_LOG%%/s//${STDOUT_LOG:S/\//\\\//g}/" \
| ${SED} "/%%STDERR_LOG%%/s//${STDERR_LOG:S/\//\\\//g}/" \
> ${CTL_SCRIPT}
${CHOWN} ${USER_NAME}:${GROUP_NAME} ${CTL_SCRIPT}
${CHMOD} 6554 ${CTL_SCRIPT}
@# Install the startup script
${CP} ${FILESDIR}/${PORTNAME}.sh ${STARTUP_SCRIPT}
${CHMOD} 0554 ${STARTUP_SCRIPT}
> ${CONTROL_SCRIPT}
${CHOWN} ${USER_NAME}:${GROUP_NAME} ${CONTROL_SCRIPT}
${CHMOD} 6554 ${CONTROL_SCRIPT}
@# Create the directories that the application will create at the
@# first run
@ -115,21 +113,21 @@ do-install:
@# Install the man page
.if !defined(NOPORTDOCS)
${CAT} ${FILESDIR}/${APPCTL_NAME}.1 \
${CAT} ${FILESDIR}/${CONTROL_SCRIPT_NAME}.1 \
| ${SED} "/%%PREFIX%%/s//${PREFIX:S/\//\\\//g}/" \
> ${WRKDIR}/${APPCTL_NAME}.1
${INSTALL_MAN} ${WRKDIR}/${APPCTL_NAME}.1 ${MANPREFIX}/man/man1
> ${WRKDIR}/${CONTROL_SCRIPT_NAME}.1
${INSTALL_MAN} ${WRKDIR}/${CONTROL_SCRIPT_NAME}.1 ${MANPREFIX}/man/man1
.endif
post-install:
@${ECHO_CMD} "${APP_TITLE} ${PORTVERSION} has been installed in ${APP_HOME}."
@${ECHO_CMD} "If you would like a user to be able to use ${APPCTL_NAME}, then put this user in the group ${GROUP_NAME}."
@${ECHO_CMD} "If you would like a user to be able to use ${CONTROL_SCRIPT_NAME}, then put this user in the group ${GROUP_NAME}."
.if !defined(NOPORTDOCS)
@${ECHO_CMD} "Use 'man ${APPCTL_NAME}' for information about starting and stopping ${APP_TITLE}."
@${ECHO_CMD} "Use 'man ${CONTROL_SCRIPT_NAME}' for information about starting and stopping ${APP_TITLE}."
.endif
.if ${AUTO_START} == "YES"
@${ECHO_CMD} "Starting ${APP_TITLE}..."
@${CTL_SCRIPT} start || true
@${CONTROL_SCRIPT} start || true
.endif
.include <bsd.port.mk>

View File

@ -3,21 +3,17 @@
# Set some variables
USER_NAME=%%USER_NAME%%
MYSELF=`basename $0`
CONTROL_SCRIPT=%%CONTROL_SCRIPT%%
case "$1" in
start)
su - ${USER_NAME} -c "%%CONTROL_SCRIPT%% start" > /dev/null ; echo -n
su -f -m ${USER_NAME} -c "exec %%CONTROL_SCRIPT%% start" && echo -n ' %%APP_SHORTNAME%%'
;;
stop)
su - ${USER_NAME} -c "%%CONTROL_SCRIPT%% stop"
;;
restart)
su - ${USER_NAME} -c "%%CONTROL_SCRIPT%% restart"
su -f -m ${USER_NAME} -c "exec %%CONTROL_SCRIPT%% stop" && echo -n ' %%APP_SHORTNAME%%'
;;
*)
echo ""
echo "Usage: ${MYSELF} { start | stop | restart }"
echo "Usage: ${MYSELF} { start | stop }"
echo ""
exit 64
;;

View File

@ -3,21 +3,17 @@
# Set some variables
USER_NAME=%%USER_NAME%%
MYSELF=`basename $0`
CONTROL_SCRIPT=%%CONTROL_SCRIPT%%
case "$1" in
start)
su - ${USER_NAME} -c "%%CONTROL_SCRIPT%% start" > /dev/null ; echo -n
su -f -m ${USER_NAME} -c "exec %%CONTROL_SCRIPT%% start" && echo -n ' %%APP_SHORTNAME%%'
;;
stop)
su - ${USER_NAME} -c "%%CONTROL_SCRIPT%% stop"
;;
restart)
su - ${USER_NAME} -c "%%CONTROL_SCRIPT%% restart"
su -f -m ${USER_NAME} -c "exec %%CONTROL_SCRIPT%% stop" && echo -n ' %%APP_SHORTNAME%%'
;;
*)
echo ""
echo "Usage: ${MYSELF} { start | stop | restart }"
echo "Usage: ${MYSELF} { start | stop }"
echo ""
exit 64
;;

View File

@ -1,9 +1,7 @@
#!/bin/sh
# Set some variables
VERSION=%%PORTVERSION%%
APP_HOME=%%APP_HOME%%
USER_NAME=%%USER_NAME%%
STDOUT_LOG=%%STDOUT_LOG%%
STDERR_LOG=%%STDERR_LOG%%
JAR_FILE=${APP_HOME}/lib/webserver.jar
@ -22,13 +20,6 @@ if [ -f ${JAVA_HOME}/lib/tools.jar ] ; then
CLASSPATH=${CLASSPATH}:${JAVA_HOME}/lib/tools.jar
fi
# Check if we're being run as a shell script or as an rc script
if [ ${MYSELF} = "%%RC_SCRIPT_NAME%%" ]; then
AS_RC_SCRIPT=yes
else
AS_RC_SCRIPT=no
fi
# Check if the JAVA_HOME directory is defined, otherwise set it to the
# fallback default
if [ "${JAVA_HOME}a" = "a" ]; then
@ -36,64 +27,119 @@ if [ "${JAVA_HOME}a" = "a" ]; then
fi
JAVA_CMD=${JAVA_HOME}/bin/java
# Function that starts the application
start() {
##############################################################################
# Function that shows an error message
#
# This function is called by the 'checks' function
#
# Parameters:
# 1: The message to be displayed.
error() {
echo -n "%%APP_SHORTNAME%%: ERROR: "
echo $1
}
##############################################################################
# Function that performs all checks necessary for starting or stopping the
# application.
#
# This function is called by the 'start' and 'stop' functions
#
# This function expects no parameters
checks() {
# Make sure the application directory does exist
if [ ! -d ${APP_HOME} ]; then
if [ "${AS_RC_SCRIPT}" = "yes" ]; then
echo ""
fi
echo "%%APP_SHORTNAME%%: ERROR: Unable to find %%APP_TITLE%% home directory at ${APP_HOME}."
error "Unable to find %%APP_TITLE%% home directory at ${APP_HOME}."
exit 2
fi
# Make sure the application JAR file exists
if [ ! -r ${JAR_FILE} ]; then
if [ "${AS_RC_SCRIPT}" = "yes" ]; then
echo ""
fi
echo "%%APP_SHORTNAME%%: ERROR: Unable to find %%APP_TITLE%% JAR file at ${JAR_FILE}."
error "Unable to find %%APP_TITLE%% JAR file at ${JAR_FILE}."
exit 3
fi
# Make sure the Java VM can be found
if [ ! -x ${JAVA_CMD} ]; then
if [ "${AS_RC_SCRIPT}" = "yes" ]; then
echo ""
fi
echo "%%APP_SHORTNAME%%: ERROR: Unable to find Java VM at ${JAVA_HOME}."
error "Unable to find Java VM at ${JAVA_HOME}."
exit 4
fi
if [ "${AS_RC_SCRIPT}" = "yes" ]; then
echo -n " %%APP_SHORTNAME%%"
fi
su - ${USER_NAME} -c "(cd ${APP_HOME} && ${JAVA_CMD} -cp ${CLASSPATH} -Dtomcat.home=${APP_HOME} org.apache.tomcat.startup.Tomcat) >> ${STDOUT_LOG} 2>> ${STDERR_LOG}"
}
##############################################################################
# Functions that calls the application with the specified parameter
#
# Parameters:
# 1: The argument to pass to the application (optional)
app() {
(cd ${APP_HOME} && ${JAVA_CMD} -cp ${CLASSPATH} -Dtomcat.home=${APP_HOME} org.apache.tomcat.startup.Tomcat $1 &) >> ${STDOUT_LOG} 2>> ${STDERR_LOG}
}
##############################################################################
# Function that starts the application
#
# This function is called from the main function
#
# This function expects no parameters
start() {
# Perform the checks
checks
# Stop the application
app
}
##############################################################################
# Function that stops the application
#
# This function is called from the main function
#
# This function expects no parameters
stop() {
if [ "${AS_RC_SCRIPT}" = "yes" ]; then
echo -n " %%APP_SHORTNAME%%"
fi
su - ${USER_NAME} -c "(cd ${APP_HOME} && ${JAVA_CMD} -cp ${CLASSPATH} -Dtomcat.home=${APP_HOME} org.apache.tomcat.startup.Tomcat -stop) >> ${STDOUT_LOG} 2>> ${STDERR_LOG}"
# Perform the checks
checks
# Stop the application
app -stop
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo ""
echo "Usage: ${MYSELF} { start | stop | restart }"
echo ""
exit 64
;;
esac
##############################################################################
# Main function. This function calls the 'start' and 'stop' functions.
#
# Parameters:
# 1: The argument to this shell script
main() {
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "Usage: ${MYSELF} { start | stop | restart }"
exit 64
;;
esac
}
# Call the main function and exit
main $1
exit 0

View File

@ -1,8 +1,21 @@
#!/bin/sh
PID_FILE=/var/run/jakarta-tomcat.pid
if [ -e ${PID_FILE} ]; then
echo -n "Jakarta Tomcat is still running."
/bin/kill `cat ${PID_FILE}`
rm -f ${PID_FILE}
echo " Stopped."
#
# This script does the following.
#
# Checks if the 'www' user exists. If it does, then it displays
# a message.
#
# $FreeBSD$
#
# Make sure we're called during the 'make deinstall' process
if [ "$2" != "POST-DEINSTALL" ]; then
exit 0
fi
# If the user exists, then display a message
if pw usershow "www" 2>/dev/null 1>&2; then
echo "To delete the www user permanently, use 'pw userdel www'"
fi
exit 0

View File

@ -410,5 +410,3 @@ etc/rc.d/020.jakarta-tomcat.sh
@dirrm %%T%%/conf
@dirrm %%T%%/bin
@dirrm %%T%%
@unexec pw groupdel tomcat || true
@unexec pw userdel tomcat || true

View File

@ -7,6 +7,7 @@
PORTNAME= jakarta-tomcat
PORTVERSION= 3.2.4
PORTREVISION= 1
CATEGORIES= www java
MASTER_SITES= http://jakarta.apache.org/builds/jakarta-tomcat/release/v${PORTVERSION}/bin/ \
http://www.metaverse.nl/~ernst/ \
@ -25,40 +26,34 @@ LOG_DIR= ${APP_HOME}/logs
PLIST_SUB+= T=${APP_HOME:S/^${PREFIX}\///}
APP_TITLE= Jakarta Tomcat
APP_SHORTNAME= tomcat
APPCTL_NAME= ${APP_SHORTNAME}ctl
CTL_SCRIPT= ${PREFIX}/bin/${APPCTL_NAME}
CONTROL_SCRIPT_NAME= ${APP_SHORTNAME}ctl
CONTROL_SCRIPT= ${PREFIX}/bin/${CONTROL_SCRIPT_NAME}
STARTUP_ORDER?= 020
STARTUP_SCRIPT= ${PREFIX}/etc/rc.d/${STARTUP_ORDER}.${PORTNAME}.sh
JAVA_HOME?= ${LOCALBASE}/jdk1.3.1
JAVA_PORT?= ${PORTSDIR}/java/jdk13
USER_NAME?= ${APP_SHORTNAME}
GROUP_NAME?= ${USER_NAME}
USER_ID?= 7103
GROUP_ID?= ${USER_ID}
USER_NAME= www
GROUP_NAME= www
PW?= /usr/sbin/pw
LISTEN_PORT?= 8080
STDOUT_LOG?= ${LOG_DIR}/stdout.log
STDERR_LOG?= ${LOG_DIR}/stderr.log
STDOUT_LOG= ${LOG_DIR}/stdout.log
STDERR_LOG= ${LOG_DIR}/stderr.log
AUTO_START?= NO
pre-install:
@${ECHO_CMD} "Installation settings:"
@${ECHO_CMD} " Destination directory: ${APP_HOME}"
@${ECHO_CMD} " Control script location: ${CTL_SCRIPT}"
@${ECHO_CMD} " Control script location: ${CONTROL_SCRIPT}"
@${ECHO_CMD} " Startup script location: ${STARTUP_SCRIPT}"
@${ECHO_CMD} " Location of JDK: ${JAVA_HOME}"
@${ECHO_CMD} " Location of Java port: ${JAVA_PORT}"
@${ECHO_CMD} " Running as (user/group): ${USER_NAME}/${GROUP_NAME} (${USER_ID}:${GROUP_ID})"
@${ECHO_CMD} " Running as (user/group): ${USER_NAME}/${GROUP_NAME}"
@${ECHO_CMD} " Port to listen at: ${LISTEN_PORT}"
@${ECHO_CMD} " Logfile stdout: ${STDOUT_LOG}"
@${ECHO_CMD} " Logfile stderr: ${STDERR_LOG}"
@${ECHO_CMD} " Starting after install: ${AUTO_START}"
do-install:
@# Add the group and the user if they do not exist
${PW} groupadd -n ${GROUP_NAME} -g ${GROUP_ID} || true
${PW} useradd -n ${USER_NAME} -u ${USER_ID} -g ${GROUP_NAME} -c "${APP_TITLE} account" -d ${APP_HOME} -s ${SH} -h - || true
@# Create the destination directory
${MKDIR} ${APP_HOME}
@ -75,10 +70,17 @@ do-install:
> ${WRKDIR}/workers.properties
${MV} ${WRKDIR}/workers.properties ${APP_HOME}/conf/workers.properties
@# Install the startup script
${CAT} ${FILESDIR}/${PORTNAME}.sh \
| ${SED} "/%%USER_NAME%%/s//${USER_NAME}/" \
| ${SED} "/%%APP_SHORTNAME%%/s//${APP_SHORTNAME}/" \
| ${SED} "/%%CONTROL_SCRIPT%%/s//${CONTROL_SCRIPT:S/\//\\\//g}/" \
> ${STARTUP_SCRIPT}
${CHMOD} 0554 ${STARTUP_SCRIPT}
@# Install the control script
${CAT} ${FILESDIR}/${APPCTL_NAME} \
${CAT} ${FILESDIR}/${CONTROL_SCRIPT_NAME} \
| ${SED} "/%%PORTNAME%%/s//${PORTNAME}/" \
| ${SED} "/%%PORTVERSION%%/s//${PORTVERSION}/" \
| ${SED} "/%%APP_TITLE%%/s//${APP_TITLE}/" \
| ${SED} "/%%APP_SHORTNAME%%/s//${APP_SHORTNAME}/" \
| ${SED} "/%%APP_HOME%%/s//${APP_HOME:S/\//\\\//g}/" \
@ -88,13 +90,9 @@ do-install:
| ${SED} "/%%USER_NAME%%/s//${USER_NAME}/" \
| ${SED} "/%%STDOUT_LOG%%/s//${STDOUT_LOG:S/\//\\\//g}/" \
| ${SED} "/%%STDERR_LOG%%/s//${STDERR_LOG:S/\//\\\//g}/" \
> ${CTL_SCRIPT}
${CHOWN} ${USER_NAME}:${GROUP_NAME} ${CTL_SCRIPT}
${CHMOD} 6554 ${CTL_SCRIPT}
@# Install the startup script
${CP} ${FILESDIR}/${PORTNAME}.sh ${STARTUP_SCRIPT}
${CHMOD} 0554 ${STARTUP_SCRIPT}
> ${CONTROL_SCRIPT}
${CHOWN} ${USER_NAME}:${GROUP_NAME} ${CONTROL_SCRIPT}
${CHMOD} 6554 ${CONTROL_SCRIPT}
@# Create the directories that the application will create at the
@# first run
@ -115,21 +113,21 @@ do-install:
@# Install the man page
.if !defined(NOPORTDOCS)
${CAT} ${FILESDIR}/${APPCTL_NAME}.1 \
${CAT} ${FILESDIR}/${CONTROL_SCRIPT_NAME}.1 \
| ${SED} "/%%PREFIX%%/s//${PREFIX:S/\//\\\//g}/" \
> ${WRKDIR}/${APPCTL_NAME}.1
${INSTALL_MAN} ${WRKDIR}/${APPCTL_NAME}.1 ${MANPREFIX}/man/man1
> ${WRKDIR}/${CONTROL_SCRIPT_NAME}.1
${INSTALL_MAN} ${WRKDIR}/${CONTROL_SCRIPT_NAME}.1 ${MANPREFIX}/man/man1
.endif
post-install:
@${ECHO_CMD} "${APP_TITLE} ${PORTVERSION} has been installed in ${APP_HOME}."
@${ECHO_CMD} "If you would like a user to be able to use ${APPCTL_NAME}, then put this user in the group ${GROUP_NAME}."
@${ECHO_CMD} "If you would like a user to be able to use ${CONTROL_SCRIPT_NAME}, then put this user in the group ${GROUP_NAME}."
.if !defined(NOPORTDOCS)
@${ECHO_CMD} "Use 'man ${APPCTL_NAME}' for information about starting and stopping ${APP_TITLE}."
@${ECHO_CMD} "Use 'man ${CONTROL_SCRIPT_NAME}' for information about starting and stopping ${APP_TITLE}."
.endif
.if ${AUTO_START} == "YES"
@${ECHO_CMD} "Starting ${APP_TITLE}..."
@${CTL_SCRIPT} start || true
@${CONTROL_SCRIPT} start || true
.endif
.include <bsd.port.mk>

View File

@ -3,21 +3,17 @@
# Set some variables
USER_NAME=%%USER_NAME%%
MYSELF=`basename $0`
CONTROL_SCRIPT=%%CONTROL_SCRIPT%%
case "$1" in
start)
su - ${USER_NAME} -c "%%CONTROL_SCRIPT%% start" > /dev/null ; echo -n
su -f -m ${USER_NAME} -c "exec %%CONTROL_SCRIPT%% start" && echo -n ' %%APP_SHORTNAME%%'
;;
stop)
su - ${USER_NAME} -c "%%CONTROL_SCRIPT%% stop"
;;
restart)
su - ${USER_NAME} -c "%%CONTROL_SCRIPT%% restart"
su -f -m ${USER_NAME} -c "exec %%CONTROL_SCRIPT%% stop" && echo -n ' %%APP_SHORTNAME%%'
;;
*)
echo ""
echo "Usage: ${MYSELF} { start | stop | restart }"
echo "Usage: ${MYSELF} { start | stop }"
echo ""
exit 64
;;

View File

@ -3,21 +3,17 @@
# Set some variables
USER_NAME=%%USER_NAME%%
MYSELF=`basename $0`
CONTROL_SCRIPT=%%CONTROL_SCRIPT%%
case "$1" in
start)
su - ${USER_NAME} -c "%%CONTROL_SCRIPT%% start" > /dev/null ; echo -n
su -f -m ${USER_NAME} -c "exec %%CONTROL_SCRIPT%% start" && echo -n ' %%APP_SHORTNAME%%'
;;
stop)
su - ${USER_NAME} -c "%%CONTROL_SCRIPT%% stop"
;;
restart)
su - ${USER_NAME} -c "%%CONTROL_SCRIPT%% restart"
su -f -m ${USER_NAME} -c "exec %%CONTROL_SCRIPT%% stop" && echo -n ' %%APP_SHORTNAME%%'
;;
*)
echo ""
echo "Usage: ${MYSELF} { start | stop | restart }"
echo "Usage: ${MYSELF} { start | stop }"
echo ""
exit 64
;;

View File

@ -1,9 +1,7 @@
#!/bin/sh
# Set some variables
VERSION=%%PORTVERSION%%
APP_HOME=%%APP_HOME%%
USER_NAME=%%USER_NAME%%
STDOUT_LOG=%%STDOUT_LOG%%
STDERR_LOG=%%STDERR_LOG%%
JAR_FILE=${APP_HOME}/lib/webserver.jar
@ -22,13 +20,6 @@ if [ -f ${JAVA_HOME}/lib/tools.jar ] ; then
CLASSPATH=${CLASSPATH}:${JAVA_HOME}/lib/tools.jar
fi
# Check if we're being run as a shell script or as an rc script
if [ ${MYSELF} = "%%RC_SCRIPT_NAME%%" ]; then
AS_RC_SCRIPT=yes
else
AS_RC_SCRIPT=no
fi
# Check if the JAVA_HOME directory is defined, otherwise set it to the
# fallback default
if [ "${JAVA_HOME}a" = "a" ]; then
@ -36,64 +27,119 @@ if [ "${JAVA_HOME}a" = "a" ]; then
fi
JAVA_CMD=${JAVA_HOME}/bin/java
# Function that starts the application
start() {
##############################################################################
# Function that shows an error message
#
# This function is called by the 'checks' function
#
# Parameters:
# 1: The message to be displayed.
error() {
echo -n "%%APP_SHORTNAME%%: ERROR: "
echo $1
}
##############################################################################
# Function that performs all checks necessary for starting or stopping the
# application.
#
# This function is called by the 'start' and 'stop' functions
#
# This function expects no parameters
checks() {
# Make sure the application directory does exist
if [ ! -d ${APP_HOME} ]; then
if [ "${AS_RC_SCRIPT}" = "yes" ]; then
echo ""
fi
echo "%%APP_SHORTNAME%%: ERROR: Unable to find %%APP_TITLE%% home directory at ${APP_HOME}."
error "Unable to find %%APP_TITLE%% home directory at ${APP_HOME}."
exit 2
fi
# Make sure the application JAR file exists
if [ ! -r ${JAR_FILE} ]; then
if [ "${AS_RC_SCRIPT}" = "yes" ]; then
echo ""
fi
echo "%%APP_SHORTNAME%%: ERROR: Unable to find %%APP_TITLE%% JAR file at ${JAR_FILE}."
error "Unable to find %%APP_TITLE%% JAR file at ${JAR_FILE}."
exit 3
fi
# Make sure the Java VM can be found
if [ ! -x ${JAVA_CMD} ]; then
if [ "${AS_RC_SCRIPT}" = "yes" ]; then
echo ""
fi
echo "%%APP_SHORTNAME%%: ERROR: Unable to find Java VM at ${JAVA_HOME}."
error "Unable to find Java VM at ${JAVA_HOME}."
exit 4
fi
if [ "${AS_RC_SCRIPT}" = "yes" ]; then
echo -n " %%APP_SHORTNAME%%"
fi
su - ${USER_NAME} -c "(cd ${APP_HOME} && ${JAVA_CMD} -cp ${CLASSPATH} -Dtomcat.home=${APP_HOME} org.apache.tomcat.startup.Tomcat) >> ${STDOUT_LOG} 2>> ${STDERR_LOG}"
}
##############################################################################
# Functions that calls the application with the specified parameter
#
# Parameters:
# 1: The argument to pass to the application (optional)
app() {
(cd ${APP_HOME} && ${JAVA_CMD} -cp ${CLASSPATH} -Dtomcat.home=${APP_HOME} org.apache.tomcat.startup.Tomcat $1 &) >> ${STDOUT_LOG} 2>> ${STDERR_LOG}
}
##############################################################################
# Function that starts the application
#
# This function is called from the main function
#
# This function expects no parameters
start() {
# Perform the checks
checks
# Stop the application
app
}
##############################################################################
# Function that stops the application
#
# This function is called from the main function
#
# This function expects no parameters
stop() {
if [ "${AS_RC_SCRIPT}" = "yes" ]; then
echo -n " %%APP_SHORTNAME%%"
fi
su - ${USER_NAME} -c "(cd ${APP_HOME} && ${JAVA_CMD} -cp ${CLASSPATH} -Dtomcat.home=${APP_HOME} org.apache.tomcat.startup.Tomcat -stop) >> ${STDOUT_LOG} 2>> ${STDERR_LOG}"
# Perform the checks
checks
# Stop the application
app -stop
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo ""
echo "Usage: ${MYSELF} { start | stop | restart }"
echo ""
exit 64
;;
esac
##############################################################################
# Main function. This function calls the 'start' and 'stop' functions.
#
# Parameters:
# 1: The argument to this shell script
main() {
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "Usage: ${MYSELF} { start | stop | restart }"
exit 64
;;
esac
}
# Call the main function and exit
main $1
exit 0

View File

@ -1,8 +1,21 @@
#!/bin/sh
PID_FILE=/var/run/jakarta-tomcat.pid
if [ -e ${PID_FILE} ]; then
echo -n "Jakarta Tomcat is still running."
/bin/kill `cat ${PID_FILE}`
rm -f ${PID_FILE}
echo " Stopped."
#
# This script does the following.
#
# Checks if the 'www' user exists. If it does, then it displays
# a message.
#
# $FreeBSD$
#
# Make sure we're called during the 'make deinstall' process
if [ "$2" != "POST-DEINSTALL" ]; then
exit 0
fi
# If the user exists, then display a message
if pw usershow "www" 2>/dev/null 1>&2; then
echo "To delete the www user permanently, use 'pw userdel www'"
fi
exit 0

View File

@ -410,5 +410,3 @@ etc/rc.d/020.jakarta-tomcat.sh
@dirrm %%T%%/conf
@dirrm %%T%%/bin
@dirrm %%T%%
@unexec pw groupdel tomcat || true
@unexec pw userdel tomcat || true