File privoxy-3.0.16-init.suse of Package privoxy

#! /bin/sh
#  ********************************************************************
# 
#  File        :  $Source: /cvsroot/ijbswa/current/privoxy.init.suse,v $
# 
#  Purpose     :  This shell script takes care of starting and stopping
#                 privoxy.
# 
#  Copyright   :  Written by and Copyright (C) 2001 the SourceForge
#                 Privoxy team. http://www.privoxy.org/
# 
#                 Based on the Internet Junkbuster originally written
#                 by and Copyright (C) 1997 Anonymous Coders and
#                 Junkbusters Corporation.  http://www.junkbusters.com
# 
#                 This program is free software; you can redistribute it
#                 and/or modify it under the terms of the GNU General
#                 Public License as published by the Free Software
#                 Foundation; either version 2 of the License, or (at
#                 your option) any later version.
# 
#                 This program is distributed in the hope that it will
#                 be useful, but WITHOUT ANY WARRANTY; without even the
#                 implied warranty of MERCHANTABILITY or FITNESS FOR A
#                 PARTICULAR PURPOSE.  See the GNU General Public
#                 License for more details.
# 
#                 The GNU General Public License should be included with
#                 this file.  If not, you can view it at
#                 http://www.gnu.org/copyleft/gpl.html
#                 or write to the Free Software Foundation, Inc., 59
#                 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
# 
# ********************************************************************/
### BEGIN INIT INFO
# Provides:       privoxy
# Required-Start: $network $syslog $remote_fs
# Required-Stop:  $remote_fs $local_fs
# Default-Start:  3 5
# Default-Stop:   0 1 2 6
# Short-Description: Starts Privoxy
# Description:    Starts Privoxy
### END INIT INFO

. /etc/rc.status
rc_reset  

case "$1" in
    start)
        echo -n "Starting Privoxy"
        if [ ! -f /var/run/privoxy.pid ] || ! kill -0 `cat /var/run/privoxy.pid` 2> /dev/null; then
		# set up chroot dir
		for i in /etc/{resolv.conf,host.conf,hosts,localtime}; do
			cp -p $i /var/lib/privoxy/etc/ &>/dev/null \
				|| { echo "...$0:$LINENO: could not copy $i to chroot jail"; rc_failed; rc_status -v1; exit 6; }
		done
		libdir=/$(basename $(echo /var/lib/privoxy/lib*))
		for i in /$libdir/{libresolv.so.2,libnss_dns{,6}.so.2}; do 
			if [ -s $i ]; then 
				cp -p $i /var/lib/privoxy/$libdir/ \
				|| { echo "...$0:$LINENO: could not copy $i to chroot jail"; rc_failed; rc_status -v1; exit 6; }
		fi
		done
		# started process in privoxy wait 1 sec and then check forked process (e.g child died due to missing config files),
		# so we need a time (-T 1 option) while forked process checks config file
		# better options for startproc could be -w, but this options is available only since 11.2
		startproc -T 1 /usr/sbin/privoxy --user privoxy.privoxy --pidfile /var/run/privoxy.pid --chroot /etc/config 2> /dev/null
        else     
           false 
        fi
	rc_status -v
        ;;
    stop)
        echo -n "Shutting down Privoxy"
        killproc -TERM /usr/sbin/privoxy && rm -f /var/run/privoxy.pid

	# remove libraries from the chroot jail, just so they are not left over 
	# if the server is deinstalled
	rm -f /var/lib/privoxy/lib*/*

	rc_status -v
        ;;
    reload)
        echo -n "Reloading Privoxy"
        kill -HUP `cat /var/run/privoxy.pid`
        rc_status -v
        ;;
    try-restart)
	$0 status >/dev/null && $0 restart
	rc_status
        ;;
    restart)
        $0 stop
        $0 start
        rc_status
        ;;           
    status)
	echo -n "Checking for Privoxy"
        checkproc /usr/sbin/privoxy
	rc_status -v
        ;;
    *)
        echo "Usage: $0 {start|restart|reload|status|stop}"
        exit 1
esac

rc_exit