mirror of
https://github.com/novatiq/packages.git
synced 2026-04-30 07:28:39 +01:00
[privoxy] remove using procd
* go back to "old" initscript not using procd
* privoxy running --no-daemon only logging to STDERR
* procd do not support redirection of STDOUT/STDERR, '2>file' as a command parameter does not work
Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
#!/bin/sh /etc/rc.common
|
||||
|
||||
START=80
|
||||
USE_PROCD=1
|
||||
STOP=20
|
||||
|
||||
PIDFILE=/var/run/privoxy.pid
|
||||
CFGFILE=/var/etc/privoxy.conf
|
||||
@@ -68,57 +68,52 @@ _uci2conf() {
|
||||
mv -f $CFGTEMP $CFGFILE
|
||||
}
|
||||
|
||||
# privoxy should auto-reload it's configuration
|
||||
# but it only reload on next connect to one of the listen_address
|
||||
# if we create a new listen_address privoxy never reload
|
||||
reload_service() {
|
||||
# so we restart here because rc.common reload_service only start without stopping
|
||||
restart "$@"
|
||||
|
||||
# the following should normally work but see above
|
||||
# _uci2conf # convert uci config
|
||||
boot() {
|
||||
return 0 # will be started by "iface" hotplug events
|
||||
}
|
||||
|
||||
service_triggers() {
|
||||
procd_add_reload_trigger "privoxy"
|
||||
start() {
|
||||
# if already running do nothing
|
||||
local _PID=$(cat $PIDFILE 2>/dev/null)
|
||||
kill -1 $_PID 2>/dev/null && return 0
|
||||
|
||||
_uci2conf
|
||||
/usr/sbin/privoxy --pidfile $PIDFILE --user privoxy.privoxy $CFGFILE
|
||||
|
||||
# verify startup
|
||||
_PID=$(cat $PIDFILE 2>/dev/null)
|
||||
kill -1 $_PID 2>/dev/null
|
||||
local _ERR=$?
|
||||
[ $_ERR -eq 0 ] \
|
||||
&& logger -p daemon.notice -t "privoxy[$_PID]" "Started successfully"\
|
||||
|| logger -p daemon.warn -t "privoxy[-----]" "Failed to start"
|
||||
return $_ERR
|
||||
}
|
||||
|
||||
start_service() {
|
||||
# redefined callback for sections when calling config_load
|
||||
config_cb() {
|
||||
# $1 type of config section
|
||||
# $2 name of section
|
||||
[ "$1" = "interface" ] && \
|
||||
procd_add_interface_trigger interface.* $2 /etc/init.d/privoxy restart
|
||||
}
|
||||
|
||||
_uci2conf # convert uci config
|
||||
|
||||
procd_open_instance
|
||||
|
||||
procd_set_param command /usr/sbin/privoxy
|
||||
procd_append_param command --no-daemon # for procd run in foreground
|
||||
procd_append_param command --pidfile $PIDFILE # set pid file
|
||||
procd_append_param command --user privoxy.privoxy # set user
|
||||
procd_append_param command $CFGFILE # config file
|
||||
|
||||
procd_set_param file $CFGFILE # set configration file
|
||||
|
||||
procd_open_trigger # we need a restart on interface events not a reload
|
||||
config_load network # load network configuration and set trigger(s) in config_cb() above
|
||||
procd_close_trigger
|
||||
|
||||
procd_close_instance
|
||||
reload() {
|
||||
# reload is also used by luci-app-privoxy
|
||||
local _PID=$(cat $PIDFILE 2>/dev/null)
|
||||
kill -1 $_PID 2>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
# only restart if already running
|
||||
restart
|
||||
else
|
||||
# only start if enabled
|
||||
enabled && start
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
service_running() {
|
||||
logger_trick() {
|
||||
sleep 1 # give privoxy time to completely come up
|
||||
logger -p daemon.notice -t "privoxy[$(cat $PIDFILE)]" "Service started successfully"
|
||||
}
|
||||
logger_trick &
|
||||
}
|
||||
|
||||
stop_service() {
|
||||
logger -p daemon.notice -t "privoxy[$(cat $PIDFILE)]" "Service shutdown"
|
||||
stop() {
|
||||
local _PID=$(cat $PIDFILE 2>/dev/null)
|
||||
kill -15 $_PID 2>/dev/null
|
||||
sleep 1 # give time to shutdown
|
||||
local _tmp=$(pgrep privoxy)
|
||||
if [ -z "$_tmp" ]; then
|
||||
logger -p daemon.notice -t "privoxy[$_PID]" "Shutdown successfully"
|
||||
else
|
||||
killall -9 privoxy
|
||||
logger -p daemon.warn -t "privoxy[-----]" "Shutdown forced by KILL"
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user