Blob Blame History Raw
#!/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 ${?}