1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-18 03:46:03 +00:00
freebsd-ports/databases/dbXML/files/dbxmlctl
Ernst de Haan 7f019c034b Correcting some problems in the control script
and adding a pkg-deinstall and another patch.

Submitted by:	maintainer
2002-03-30 11:48:54 +00:00

136 lines
3.0 KiB
Bash

#!/bin/sh
# Set Variables
NAME=dbXML
DBXML_HOME=%%DBXML_HOME%%
LOG=${DBXML_HOME}/logs/${NAME}ctl.log
JAR_DIR=${DBXML_HOME}/java/lib
PID_FILE=/var/run/${NAME}.pid
MYSELF=`basename $0`
USER_NAME=dbxml
# Check if we're being run as a shell script or as an rc script
if [ ${MYSELF} = "00dbxml.sh" ]; 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
JAVA_HOME=%%JAVA_HOME%%
export JAVA_HOME
fi
JAVA_CMD=${JAVA_HOME}/bin/java
# Make sure the dbXML directory does exist
if [ ! -d ${DBXML_HOME} ]; then
if [ "${AS_RC_SCRIPT}" = "yes" ]; then
echo ""
fi
echo "${NAME}: ERROR: Unable to find dbXML home directory at ${DBXML_HOME}."
exit 1
fi
# Make sure the Java VM can be found
if [ ! -x ${JAVA_CMD} ]; then
if [ "${AS_RC_SCRIPT}" = "yes" ]; then
echo ""
fi
echo "${NAME}: ERROR: Unable to find Java VM at ${JAVA_HOME}."
exit 2
fi
# Make sure the JAR file Directory exists
if [ ! -d ${JAR_DIR} ]; then
if [ "${AS_RC_SCRIPT}" = "yes" ]; then
echo ""
fi
echo "${NAME}: ERROR: Unable to find JAR Directory at ${JAR_DIR}."
exit 3
fi
server_shutdown() {
# Read in instances and kill processes
INSTANCES="`cat ${DBXML_HOME}/config/instances.cfg`"
for instance in $INSTANCES
do
/usr/local/bin/dbxmladmin shutdown -c /$instance 1> /dev/null 2> /dev/null
done
# Remove stale pid file
rm ${PID_FILE}
}
server_start() {
# setup dbXML Classpath
CLASSPATH=${DBXML_HOME}/classgen:${DBXML_HOME}/config:$CLASSPATH
JARS=`ls -1 ${JAR_DIR}/*.jar`
for jar in $JARS
do
CLASSPATH=$jar:$CLASSPATH ;
done
# Read in the extra VM paramters for starting the program
VMPROPS=""
if [ -f ${DBXML_HOME}/config/vm.cfg ]; then
PROPS="`cat ${DBXML_HOME}/config/vm.cfg`"
for prop in $PROPS
do
VMPROPS="$VMPROPS $prop"
done
fi
# Setup pid file
touch ${PID_FILE}
chown ${USER_NAME} ${PID_FILE}
chmod 600 ${PID_FILE}
# Start dbXML
su -fm ${USER_NAME} -c "(cd ${DBXML_HOME} && ${JAVA_CMD} -Xms16m -Xmx168m -classpath "$CLASSPATH" -Ddbxml.home="${DBXML_HOME}" org.dbxml.core.server.dbXML & echo \$! > ${PID_FILE}) > ${LOG}"
}
case "$1" in
start)
# Make sure another instance of dbXML is not running
if [ -e ${PID_FILE} ]; then
if [ "${AS_RC_SCRIPT}" = "yes" ]; then
echo ""
fi
echo "A dbxml instance is already running with PID" `cat ${PID_FILE}`
exit 0
fi
echo "starting dbXML...."
server_start;
;;
stop)
# Make sure an instance of dbXML is running
if [ ! -e ${PID_FILE} ]; then
if [ "${AS_RC_SCRIPT}" = "yes" ]; then
echo ""
fi
echo "dbXML is not currently running"
exit 0
fi
echo "stopping dbXML...."
server_shutdown;
;;
restart)
# Make sure an instance of dbXML is running
if [ ! -e ${PID_FILE} ]; then
server_start;
else
echo "restarting dbXML...."
server_shutdown;
server_start;
fi
;;
*)
echo ""
echo "Usage: ${MYSELF} { start | restart | stop}"
echo ""
exit 64
;;
esac