9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez#!/bin/sh
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# Startup script for Apache Derby
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez#
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# Software License Agreement (BSD License)
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez#
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# Copyright (c) 2011, Trond Norbye
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# All rights reserved.
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez#
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# Redistribution and use in source and binary forms, with or without
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# modification, are permitted provided that the following conditions are
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# met:
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez#
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# * Redistributions of source code must retain the above copyright
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# notice, this list of conditions and the following disclaimer.
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez#
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# * Redistributions in binary form must reproduce the above
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# copyright notice, this list of conditions and the following disclaimer
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# in the documentation and/or other materials provided with the
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# distribution.
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez#
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# * The names of the contributors may be used to endorse or promote
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# products derived from this software without specific prior written
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# permission.
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez#
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez### BEGIN INIT INFO
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# Provides: derby
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# Required-Start: $network $local_fs
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# Required-Stop: $network $local_fs
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# Default-Start: 2 3 4 5
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# Default-Stop: 0 1 6
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# Short-Description: start Apache Derby
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez### END INIT INFO
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez#
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# You may install the links by installing the file in /etc/init.d and
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# execute:
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# update-rc.d derby default
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez#
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# Defaults
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick LecaillezDERBY_USER=opengrok
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick LecaillezDERBY_GROUP=opengrok
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick LecaillezDERBY_JVM_OPTIONS=
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick LecaillezDERBY_DATA_DIR=/var/opengrok/derby
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick LecaillezDERBY_JAR_DIR=/usr/lib/jvm/java-6-sun/db/lib
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick LecaillezDERBY_JAR=${DERBY_JAR_DIR}/derbynet.jar
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez# Reads config file (will override defaults above)
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez[ -r /etc/default/derby ] && . /etc/default/derby
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick LecaillezPIDFILE=/var/run/derby.pid
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez. /lib/lsb/init-functions
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillezcase "$1" in
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez start)
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez log_daemon_msg "Starting Derby"
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez # exit unless we've got the jar file
f09c069e92d051036af2a969fe5289cb7c4826baMatthew Swift test -f ${DERBY_JAR}
f09c069e92d051036af2a969fe5289cb7c4826baMatthew Swift if [ $? -ne 0 ]
f09c069e92d051036af2a969fe5289cb7c4826baMatthew Swift then
f09c069e92d051036af2a969fe5289cb7c4826baMatthew Swift log_failure_msg "Missing file: ${DERBY_JAR}"
f09c069e92d051036af2a969fe5289cb7c4826baMatthew Swift exit 1
f09c069e92d051036af2a969fe5289cb7c4826baMatthew Swift fi
f09c069e92d051036af2a969fe5289cb7c4826baMatthew Swift
f09c069e92d051036af2a969fe5289cb7c4826baMatthew Swift start-stop-daemon \
f09c069e92d051036af2a969fe5289cb7c4826baMatthew Swift --start \
f09c069e92d051036af2a969fe5289cb7c4826baMatthew Swift --chuid ${DERBY_USER}:${DERBY_GROUP} \
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez --background \
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez --make-pidfile \
9f0904fda87bfcf921deeccdbaeafe834fbad696Yannick Lecaillez --pidfile $PIDFILE \
f09c069e92d051036af2a969fe5289cb7c4826baMatthew Swift --quiet \
--exec /usr/bin/java \
-- \
${DERBY_JVM_OPTIONS} \
-Dderby.system.home=${DERBY_DATA_DIR} \
-jar ${DERBY_JAR_DIR}/derbynet.jar \
start
if [ $? -ne 0 ]
then
log_end_msg 1
exit 1
fi
log_end_msg 0
;;
stop)
log_daemon_msg "Stopping Derby"
start-stop-daemon --stop --quiet --pidfile $PIDFILE
log_end_msg 0
;;
restart)
$0 stop
if [ $? -eq 0 ]
then
sleep 1
$0 start
fi
;;
try-restart)
status_of_proc -p $PIDFILE /usr/bin/java Derby > /dev/null 2>&1
if [ $? -eq 0 ]
then
$0 restart
fi
;;
reload|force-reload)
;;
status)
status_of_proc -p $PIDFILE /usr/bin/java Derby
exit $?
;;
*)
echo "Usage: /etc/init.d/derby {start|stop|restart|try-restart|reload|force-reload|status}"
exit 1
;;
esac
exit 0