Workaround for closing the jarfile before load_config() comes around again
[privoxy.git] / privoxy.init
1 #!/bin/sh
2 #  ********************************************************************
3
4 #  File        :  $Source: /cvsroot/ijbswa/current/privoxy.init,v $
5
6 #  Purpose     :  This shell script takes care of starting and stopping
7 #                 privoxy.
8
9 #  Copyright   :  Written by and Copyright (C) 2001 the SourceForge
10 #                 PRIVOXY team.  http://ijbswa.sourceforge.net
11
12 #                 Based on the Internet Junkbuster originally written
13 #                 by and Copyright (C) 1997 Anonymous Coders and
14 #                 Junkbusters Corporation.  http://www.junkbusters.com
15
16 #                 This program is free software; you can redistribute it
17 #                 and/or modify it under the terms of the GNU General
18 #                 Public License as published by the Free Software
19 #                 Foundation; either version 2 of the License, or (at
20 #                 your option) any later version.
21
22 #                 This program is distributed in the hope that it will
23 #                 be useful, but WITHOUT ANY WARRANTY; without even the
24 #                 implied warranty of MERCHANTABILITY or FITNESS FOR A
25 #                 PARTICULAR PURPOSE.  See the GNU General Public
26 #                 License for more details.
27
28 #                 The GNU General Public License should be included with
29 #                 this file.  If not, you can view it at
30 #                 http://www.gnu.org/copyleft/gpl.html
31 #                 or write to the Free Software Foundation, Inc., 59
32 #                 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
33
34 #  Revisions   :
35 #     $Log: privoxy.init,v $
36 #     Revision 1.4  2002/03/25 04:16:48  hal9
37 #     Fix proper config file location.
38 #
39 #     Revision 1.3  2002/03/24 19:12:15  hal9
40 #     Fixed some naming conflicts.
41 #
42 #     Revision 1.2  2002/03/24 11:40:14  swa
43 #     name change
44 #
45 #     Revision 1.1  2002/03/24 11:23:44  swa
46 #     name change
47 #
48 #     Revision 1.1  2002/03/22 20:53:03  morcego
49 #     - Ongoing process to change name to JunkbusterNG
50 #     - configure/configure.in: no change needed
51 #     - GNUmakefile.in:
52 #             - TAR_ARCH = /tmp/JunkbusterNG-$(RPM_VERSION).tar.gz
53 #             - PROGRAM    = jbng@EXEEXT@
54 #             - rh-spec now references as junkbusterng-rh.spec
55 #             - redhat-upload: references changed to junkbusterng-* (package names)
56 #             - tarball-dist: references changed to JunkbusterNG-distribution-*
57 #             - tarball-src: now JunkbusterNG-*
58 #             - install: initscript now junkbusterng.init and junkbusterng (when
59 #                        installed)
60 #     - junkbuster-rh.spec: renamed to junkbusterng-rh.spec
61 #     - junkbusterng.spec:
62 #             - References to the expression ijb where changed where possible
63 #             - New package name: junkbusterng (all in lower case, acording to
64 #               the LSB recomendation)
65 #             - Version changed to: 2.9.13
66 #             - Release: 1
67 #             - Added: junkbuster to obsoletes and conflicts (Not sure this is
68 #               right. If it obsoletes, why conflict ? Have to check it later)
69 #             - Summary changed: Stefan, please check and aprove it
70 #             - Changes description to use the new name
71 #             - Sed string was NOT changed. Have to wait to the manpage to
72 #               change first
73 #             - Keeping the user junkbuster for now. It will require some aditional
74 #               changes on the script (scheduled for the next specfile release)
75 #             - Added post entry to move the old logfile to the new log directory
76 #             - Removing "chkconfig --add" entry (not good to have it automaticaly
77 #               added to the startup list).
78 #             - Added preun section to stop the service with the old name, as well
79 #               as remove it from the startup list
80 #             - Removed the chkconfig --del entry from the conditional block on
81 #               the preun scriptlet (now handled on the %files section)
82 #     - junkbuster.init: renamed to junkbusterng.init
83 #     - junkbusterng.init:
84 #             - Changed JB_BIN to jbng
85 #             - Created JB_OBIN with the old value of JB_BIN (junkbuster), to
86 #               be used where necessary (config dir)
87 #
88 #     Aditional notes:
89 #     - The config directory is /etc/junkbuster yet. Have to change it on the
90 #     specfile, after it is changes on the code
91 #     - The only files that got renamed on the cvs tree were the rh specfile and
92 #     the init file. Some file references got changes on the makefile and on the
93 #     rh-spec (as listed above)
94 #
95 #     Revision 1.15  2002/03/09 15:05:58  swa
96 #     wrong user.group
97 #
98 #     Revision 1.14  2002/03/06 06:13:40  hal9
99 #     Adapted for Andreas' changes for --user and --pidfile.
100 #
101 #     Revision 1.13  2002/03/05 05:10:10  oes
102 #     Changed pidfile path to conform with FHS
103 #
104 #     Revision 1.12  2002/03/04 20:44:36  oes
105 #     Changed to new cmdline syntax
106 #
107 #     Revision 1.11  2001/12/30 14:07:32  steudten
108 #     - Add signal handling (unix)
109 #     - Add SIGHUP handler (unix)
110 #     - Add creation of pidfile (unix)
111 #     - Add action 'top' in rc file (RH)
112 #     - Add entry 'SIGNALS' to manpage
113 #     - Add exit message to logfile (unix)
114 #
115 #     Revision 1.10  2001/11/05 21:30:23  steudten
116 #     Make JB startup without & due to be a 'real' daemon right now.
117 #     Make the script easy to change.
118 #
119 #     Revision 1.9  2001/09/15 01:53:12  steudten
120 #
121 #     Remove test for subsys flag in start. Some minor changes.
122 #
123 #     Revision 1.8  2001/06/28 13:50:36  sarantis
124 #     swap ?$ with $?; remove bogus ";;"
125 #
126 #     Revision 1.7  2001/06/28 13:40:26  sarantis
127 #     remove single quotes from $JB; it was not expanded.
128 #
129 #     Revision 1.6  2001/06/28 13:38:42  sarantis
130 #     formatting changes; individual return values are returned from the init script.
131 #
132 #     Revision 1.5  2001/06/11 11:37:40  sarantis
133 #     Minor editing changes.
134 #
135 #     Revision 1.4  2001/06/09 09:14:11  swa
136 #     shamelessly adapted RPM stuff from the newest rpm that
137 #     RedHat provided for the JB.
138 #
139 #     Revision 1.3  2001/05/25 10:12:44  oes
140 #     Fixed default case in switch statement (# -> *)
141 #
142 #     Revision 1.2  2001/05/24 07:52:24  swa
143 #     added header. removed ^M.
144 #
145
146 # ********************************************************************/
147
148 # This is file /etc/rc.d/init.d/privoxy and was put here 
149 # by the privoxy rpm
150 #
151 # chkconfig: 235 84 09
152 #
153 # description: This shell script takes care of starting and stopping \
154 #              privoxy.
155 #
156
157
158 # Source function library.
159 . /etc/rc.d/init.d/functions
160
161 . /etc/sysconfig/network
162
163 #  Check that networking is up.
164 [ ${NETWORKING} = "no" ] && exit 0
165
166 JB_PRG="privoxy"
167 JB_BIN="/usr/sbin/$JB_PRG"
168 JB_CONF="/etc/$JB_PRG/config"
169 JB_USER="privoxy"
170 JB_PID=/var/run/$JB_PRG.pid
171 JB_LOCK=/var/lock/subsys/$JB_PRG
172 JB="$JB_BIN --user $JB_USER.$JB_USER --pidfile $JB_PID $JB_CONF"
173
174 # some checks for us
175 ! [ -x $JB_BIN  ] && echo "Can't find $JB_BIN, exit." && exit 0
176 ! [ -f $JB_CONF ] && echo "Can't find $JB_CONF, exit." && exit 0
177
178 # See how we were called.
179
180 start () {
181         # start daemon
182         echo -n $"Starting $JB_PRG: "
183      if [ -f $JB_PID ]; then 
184         killproc $JB_PRG && rm -f $JB_LOCK $JB_PID
185         RETVAL=$?
186         [ $RETVAL != 0 ] && return $RETVAL
187      fi
188         daemon $JB 
189         RETVAL=$?
190         echo
191         [ $RETVAL = 0 ] && touch $JB_LOCK
192         return $RETVAL
193 }
194
195 stop () {
196         # stop daemon
197         echo -n $"Stopping $JB_PRG: "
198         killproc $JB_PRG && rm -f $JB_LOCK $JB_PID
199         RETVAL=$?
200         echo
201         return $RETVAL
202 }
203
204 case "$1" in
205   start)
206         start   
207         ;;
208   stop)
209         stop
210         ;;
211   reload)
212         if [ -f $JB_PID ] ; then
213         kill -HUP `cat $JB_PID`
214         RETVAL=$?
215      fi
216         ;;
217   restart)
218         stop
219         start
220         RETVAL=$?
221         ;;
222   condrestart)
223         # restart only if already running
224         if [ -f $JB_PID ] ; then
225         stop
226         start
227         RETVAL=$?
228         fi 
229         ;;
230   status)
231         status $JB_PRG 
232         RETVAL=$?
233         ;;
234   top)
235      if [ -f $JB_PID ]; then
236                 a=""
237                 for i in `pidof $JB_PRG` ; do
238                         a="$a -p $i"
239                 done
240                 top $a
241      fi
242         ;;
243   *)
244         echo $"Usage: $JB_PRG {start|stop|reload|restart|condrestart|status|top}"
245         exit 1
246 esac
247
248 exit $RETVAL