#! /bin/sh # # innd InterNet News System # # chkconfig: 345 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/doc/inn* \ # before trying. # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Daemon specific . /usr/share/news/innshellvars # Check that networking is up. if is_yes "${NETWORKING}"; then if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then msg_network_down "INN" exit 1 fi else exit 0 fi start() { if [ ! -f /var/lock/subsys/inn ]; then grep -v "#" /etc/news/inn.conf | grep ovmethod | grep ovdb 2>&1 >/dev/null RETVAL=$? if [ $RETVAL -eq 0 ]; then msg_starting "INN ovdb_monitor" daemon --pidfile /var/run/news/ovdb_monitor.pid --user news ovdb_init fi msg_starting "INN" daemon --pidfile /var/run/news/innd.pid --user news innd RETVAL=$? [ $RETVAL -eq 0 ] && touch /var/lock/subsys/inn if is_yes "$DOINNWATCH" ; then msg_starting "INN Watch" busy daemon --fork --pidfile /var/run/news/innwatch.pid --user news /usr/bin/innwatch RETVAL=$? [ $RETVAL -eq 0 ] && touch /var/lock/subsys/innwatch fi else msg_already_running "INN" fi } stop() { if [ -f /var/lock/subsys/inn ]; then msg_stopping "INN" busy if ctlinnd shutdown "Stopping INN service"; then ok else fail fi if [ -f /var/run/news/innwatch.pid ]; then msg_stopping "INN Watch" killproc --pidfile /var/run/news/innwatch.pid innwatch -9 rm -f /var/run/news/innwatch.pid \ /var/run/news/LOCK.innwatch >/dev/null 2>&1 fi if [ -f /var/run/news/infeed.pid ]; then msg_stopping "INN Feed" killproc --pidfile /var/run/news/infeed.pid innfeed -9 rm -f /var/run/news/innfeed.pid >/dev/null 2>&1 fi if [ -f /var/run/news/actived.pid ]; then msg_stopping "INN Actived" killproc --pidfile /var/run/news/actived.pid actived -9 rm -f /var/run/news/actived.pid >/dev/null 2>&1 fi if [ -f /var/run/news/ovdb_monitor.pid ]; then msg_stopping "INN ovdb_monitor" killproc --pidfile /var/run/news/ovdb_monitor.pid ovdb_monitor -15 rm -f /var/run/news/ovdb_monitor.pid >/dev/null 2>&1 fi rm -f /var/lock/subsys/inn >/dev/null 2>&1 else msg_not_running INN fi } RETVAL=0 # See how we were called. case "$1" in start) start ;; stop) stop ;; status) status innwatch status innd if [ $? -eq 0 ]; then innstat fi ;; reload|force-reload) if [ -f /var/lock/subsys/inn ]; then msg_reloading "INN" busy ctlinnd reload all "Reloading" >/dev/null 2>&1; [ $? -ne 0 ] && RETVAL=7 [ $RETVAL -eq 0 ] && ok || died else msg_not_running INN >&2 exit 7 fi ;; restart) stop sleep 2 start ;; *) msg_usage "$0 {start|stop|restart|reload|force-reload|status}" exit 3 esac exit $RETVAL