#!/bin/bash
#
# innd InterNet News System
#
# chkconfig: - 95 05
# description: inn is the most popular server for Usenet news. It allows \
# you to setup local news servers. It can be difficult to \
# set up properly though, so be sure to read /usr/share/doc/inn* \
# before trying.
# processname: innd
# pidfile: /var/run/news/innd.pid
### BEGIN INIT INFO
# Provides: innd
# Required-Start: $network
# Short-Description: InterNet News System
# Description: inn is the most popular server for Usenet news. It allows \
# you to setup local news servers. It can be difficult to \
# set up properly though, so be sure to read /usr/share/doc/inn* \
# before trying.
### END INIT INFO
# Source function library.
. /etc/init.d/functions
# Get config.
. /etc/sysconfig/network
RETVAL=0
start() {
# Check that networking is up.
[ "${NETWORKING}" = "no" ] && exit 1
[ -d /etc/news ] || exit 1
[ -f /etc/news/inn.conf ] || exit 6
. /usr/lib/news/lib/innshellvars || exit 1
[ -d "$SPOOLBASE" ] || exit 1
[ -f "$HISTORY" -a -f "$HISTORY.hash" ] || {
echo $"Please run makehistory and/or makedbz before starting innd." >&2
exit 1
}
echo -n $"Starting INND system: "
# INN uses too many un-checked shell scripts
unset LANG
unset LC_COLLATE
daemon --user news /etc/rc.news
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/innd
echo
}
stop() {
if [ -f /var/run/news/innd.pid ]; then
echo -n $"Stopping INND service (gently): "
if "${NEWSBIN}/ctlinnd" -s -t 60 throttle shutting down &&
sleep 30 &&
"${NEWSBIN}/ctlinnd" -s -t 60 shutdown shutting down; then
success $"innd shutdown"
else
failure $"innd shutdown"
echo -n $"Stopping INND service (the hard way): "
killproc innd
fi
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f /var/run/news/innd.pid
echo
fi
if [ -f /var/run/news/innwatch.pid ]; then
echo -n $"Stopping INNWatch service: "
killproc innwatch -9
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f /var/run/news/innwatch.pid
echo
fi
if [ -f /var/run/news/innfeed.pid ]; then
echo -n $"Stopping INNFeed service: "
killproc innfeed -9
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f /var/run/news/innfeed.pid
echo
fi
if [ -f /var/run/news/actived.pid ]; then
echo -n $"Stopping INN actived service: "
killproc actived -9
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f /var/run/news/actived.pid
echo
fi
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/innd /var/lock/news/*
}
reload() {
echo -n $"Reloading INN Service: "
killproc innd -HUP
RETVAL=$?
}
restart() {
stop
start
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status innd
RETVAL=$?
;;
reload)
#XXX fixme, not working
#reload
restart
;;
restart)
restart
;;
condrestart)
if [ -f /var/lock/subsys/innd ]; then
restart
fi
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart}"
exit 3
;;
esac
exit $RETVAL