#!/bin/sh
# ********************************************************************
#
-# File : $Source: /cvsroot/ijbswa/current/loaders.c,v $
+# File : $Source: /cvsroot/ijbswa/current/junkbuster.init,v $
#
# Purpose : This shell script takes care of starting and stopping
# junkbuster.
-# This works only correctly if the user `nobody' is allowed
-# to be in the directory where this file is called
-# (for example: /root is NOT ok)
#
# Copyright : Written by and Copyright (C) 2001 the SourceForge
# IJBSWA team. http://ijbswa.sourceforge.net
# Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# Revisions :
-# $Log: loaders.c,v $
+# $Log: junkbuster.init,v $
+# Revision 1.10 2001/11/05 21:30:23 steudten
+# Make JB startup without & due to be a 'real' daemon right now.
+# Make the script easy to change.
+#
+# Revision 1.9 2001/09/15 01:53:12 steudten
+#
+# Remove test for subsys flag in start. Some minor changes.
+#
+# Revision 1.8 2001/06/28 13:50:36 sarantis
+# swap ?$ with $?; remove bogus ";;"
+#
+# Revision 1.7 2001/06/28 13:40:26 sarantis
+# remove single quotes from $JB; it was not expanded.
+#
+# Revision 1.6 2001/06/28 13:38:42 sarantis
+# formatting changes; individual return values are returned from the init script.
+#
+# Revision 1.5 2001/06/11 11:37:40 sarantis
+# Minor editing changes.
+#
+# Revision 1.4 2001/06/09 09:14:11 swa
+# shamelessly adapted RPM stuff from the newest rpm that
+# RedHat provided for the JB.
+#
+# Revision 1.3 2001/05/25 10:12:44 oes
+# Fixed default case in switch statement (# -> *)
+#
+# Revision 1.2 2001/05/24 07:52:24 swa
+# added header. removed ^M.
+#
#
# ********************************************************************/
-# These lines are needed so Redhat's config tools will "see" this script:
-# chkconfig: 35 84 09
-# description: Blocks annoying ads from the internet, along with cookies \
-# and a few other privacy features.
-# processname: junkbuster
-# config: /etc/junkbuster/config
-
-# ---------------------------------------------------------------------------
-#
-# SuSE only
+# This is file /etc/rc.d/init.d/junkbuster and was put here
+# by the junkbuster rpm
#
-# ---------------------------------------------------------------------------
-if [ -f /etc/rc.config ]; then
-
-# Author: Daniel Bischof <daniel@suse.de>, 1999
-# Adjustment: Axel Braun <doc.b@gmx.de>, 17.08.2000
-. /etc/rc.config
-#base=${0##*/}
-#link=${base#*[SK][0-9][0-9]}
-#test $link = $base && START_IJB=yes
-#test "$START_IJB" = "yes" || exit 0
-return=$rc_done
-case "$1" in
- start)
- echo -n "Starting The Internet Junkbuster"
- su - nobody -c 'nohup /usr/sbin/junkbuster /etc/junkbuster/config < /dev/null > /dev/null &'
- sleep 1
- echo -e "$return"
- ;;
- stop)
- echo -n "Shutting down The Internet Junkbuster"
- killproc -TERM /usr/sbin/junkbuster || return=$rc_failed
- echo -e "$return"
- ;;
- restart|reload)
- echo -n "Reload The Internet Junkbuster"
- killproc -HUP /usr/sbin/junkbuster || return=$rc_failed
- echo -e "$return"
- ;;
- status)
- checkproc /usr/sbin/junkbuster && echo OK || echo No process
- ;;
- # )
- echo "Usage: $0 {start|restart|status|stop}"
- exit 1
-esac
-test "$return" = "$rc_done" || exit 1
-exit 0
-
-else
-# ---------------------------------------------------------------------------
+# chkconfig: 235 84 09
#
-# RedHat only
+# description: This shell script takes care of starting and stopping \
+# junkbuster.
#
-# ---------------------------------------------------------------------------
+
# Source function library.
-if [ -f /etc/rc.d/init.d/functions ]; then
. /etc/rc.d/init.d/functions
-fi
-if [ -f /etc/sysconfig/network ]; then
. /etc/sysconfig/network
-fi
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
-[ -f /etc/junkbuster/config ] || exit 0
+JB_PRG="junkbuster"
+JB_BIN="/usr/sbin/$JB_PRG"
+JB_CONF="/etc/$JB_PRG/config"
+JB_USER="junkbuster"
+JB_PID="/etc/junkbuster"/$JB_PRG.pid
-[ -f /usr/sbin/junkbuster ] || exit 0
-
-RETVAL=0
+# some checks for us
+[ -x $JB_BIN ] || exit 0
+[ -f $JB_CONF ] || exit 0
# See how we were called.
-case "$1" in
-
- start)
- # abort if already started
- pid=`pidofproc junkbuster`
- [ -n "$pid" ] && ps h $pid >/dev/null 2>&1 && \
- echo -n "Already started: " && status junkbuster && \
- exit 0
- # Start daemon.
- echo -n "Starting junkbuster:" && RETVAL=1
- ulimit -c 0
- su - nobody -s /bin/sh -c '/usr/sbin/junkbuster /etc/junkbuster/config' &
- sleep 1
- pid=`pidofproc junkbuster`
- [ -n "$pid" ] && ps h $pid >/dev/null 2>&1 && RETVAL=0 && echo_success && touch /var/lock/subsys/junkbuster
- [ $RETVAL -eq 1 ] && echo_failure
- echo
- ;;
+JB="$JB_BIN $JB_CONF"
+
+start () {
+ # start daemon
+ echo -n $"Starting $JB_PRG: "
+ daemon --user $JB_USER $JB
+ RETVAL=$?
+ echo
+ [ $RETVAL = 0 ] && touch /var/lock/subsys/$JB_PRG
+ return $RETVAL
+}
+
+stop () {
+ # stop daemon
+ echo -n $"Stopping $JB_PRG: "
+ killproc $JB_PRG && rm -f /var/lock/subsys/$JB_PRG $JB_PID
+ RETVAL=$?
+ echo
+ return $RETVAL
+}
- stop)
- # Stop daemon.
- echo -n "Shutting down junkbuster:"
- killproc junkbuster
- RETVAL=$?
- [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/junkbuster
- echo
- ;;
-
- status)
- status junkbuster
- RETVAL=$?
- ;;
-
- restart|reload)
- $0 stop && $0 start
- ;;
-
- # )
- echo "Usage: junkbuster {start|stop|status|restart|reload}"
- exit 1
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ reload)
+ if [ -f $JB_PID ] ; then
+ kill -HUP `cat $JB_PID`
+ RETVAL=$?
+ fi
+ ;;
+ restart)
+ stop
+ start
+ RETVAL=$?
+ ;;
+ condrestart)
+ # restart only if already running
+ if [ -f $JB_PID ] ; then
+ stop
+ start
+ RETVAL=$?
+ fi
+ ;;
+ status)
+ status $JB_PRG
+ RETVAL=$?
+ ;;
+ top)
+ if [ -f $JB_PID ]; then
+ a=""
+ for i in `pidof $JB_PRG` ; do
+ a="$a -p $i"
+ done
+ top $a
+ fi
+ ;;
+ *)
+ echo $"Usage: $JB_PRG {start|stop|reload|restart|condrestart|status|top}"
+ exit 1
esac
exit $RETVAL
-
-fi
-