#!/bin/bash
#
# sks-db This shell script takes care of starting and stopping
# the SKS database server.
#
# chkconfig: - 89 11
# description: SKS is the OpenPGP Synchronizing Key Server.
# processname: sks-db
# config: /etc/sks/sksconf
# config: /etc/sysconfig/sks
# pidfile: /var/run/sks-db.pid
### BEGIN INIT INFO
# Required-Start: $network
# Required-Stop: $network
### END INIT INFO
# Source function library.
. /etc/rc.d/init.d/functions
# Defines
DESC="the SKS Database Server"
PROG="sks-db"
EXEC="/usr/sbin/${PROG}"
LOCK="/var/lock/subsys/${PROG}"
PIDF="/var/run/${PROG}.pid"
STOP_TIMEOUT="10"
BASEDIR="/srv/sks"
HOSTNAME="$(hostname -f)"
DEBUGLEVEL="0"
STAT_HOUR="1"
RUN_AS="sks"
SKS_SHUT="60"
SKS_CMD="$(echo ${PROG} | cut -d'-' -f2)"
# Include config
if [ -s /etc/sysconfig/sks ]; then
. /etc/sysconfig/sks
fi
start() {
local pid=
[ -x "${EXEC}" ] || exit 5
# Start daemons.
cd "$BASEDIR"
if [ ! -d KDB ]; then
daemon --user=${RUN_AS} ${EXEC} build || failure
fi
echo -n $"Starting ${DESC}: "
daemon --user=${RUN_AS} ${EXEC} ${SKS_CMD} -debuglevel "$DEBUGLEVEL" -hostname "$HOSTNAME" -basedir "$BASEDIR" -stat_hour "$STAT_HOUR" 2\>/dev/null \& || failure
pid=`pidof -o %PPID ${PROG}`
RETVAL=${?}
if [ ${RETVAL} -ne 0 ] ; then
failure
else
touch ${LOCK} || failure
echo ${pid} >${PIDF} || failure
success
fi
echo
return ${RETVAL}
}
stop() {
echo -n $"Shutting down ${DESC}: "
if [ -f $PIDF ]; then
killproc -p "${PIDF}" -d ${STOP_TIMEOUT} $PROG 2\> /dev/null || failure
rm -f ${LOCK} || failure
rm -f ${PIDF} || failure
else
failure $"Stopping $prog"
fi
RETVAL=$?
[ ${RETVAL} -eq 0 ] && rm -f "${PIDF}"
echo
}
restart() {
stop
sleep 2
start
}
force_reload() {
restart
}
rh_status() {
status ${PROG}
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
# See how we were called.
case "${1}" in
start)
${1}
;;
stop)
${1}
;;
restart)
${1}
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
restart
;;
*)
echo $"Usage: ${PROG} {start|stop|status|restart|try-restart|force-reload}"
exit 2
esac
exit ${?}