X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=modules%2Fstunnel4%2Ffiles%2Fetc-init.d-stunnel4;h=8921c4fef51e846521a8cd96dc56dc0f04235f18;hb=067090ebb5aafec7408e2a0676b857f8235ecbfc;hp=fc17c6df62134e3372a9d0dc9e8da0f6fe1d538a;hpb=05e80008e232b3319f2db0922126b49b230d21a3;p=mirror%2Fdsa-puppet.git diff --git a/modules/stunnel4/files/etc-init.d-stunnel4 b/modules/stunnel4/files/etc-init.d-stunnel4 index fc17c6df6..8921c4fef 100755 --- a/modules/stunnel4/files/etc-init.d-stunnel4 +++ b/modules/stunnel4/files/etc-init.d-stunnel4 @@ -20,10 +20,22 @@ DEFAULTPIDFILE="/var/run/stunnel4.pid" DAEMON=/usr/bin/stunnel4 NAME=stunnel DESC="SSL tunnels" -FILES="${STUNNEL_FILES:-/etc/stunnel/*.conf}" OPTIONS="" ENABLED=0 +ulimit -n 4096 + +if [ -n "${2:-}" ]; then + if [ -e "/etc/stunnel/$2.conf" ]; then + FILES="/etc/stunnel/$2.conf" + else + echo >&2 "/etc/stunnel/$2.conf does not exist." + exit 1 + fi +else + FILES="/etc/stunnel/*.conf" +fi + get_pids() { local file=$1 if test -f $file; then @@ -64,10 +76,19 @@ killdaemons() { for file in $FILES; do PROCLIST=`get_pids $file` - if [ "$PROCLIST" ] && kill -0 $PROCLIST 2>/dev/null; then - kill $PROCLIST - echo -n "[stopped: $file] " - fi + for p in $PROCLIST; do + #start-stop-daemon --stop --retry 30 --pid "$p" + # start-stop-daemon in wheezy does not have a --pid yet, it interprets it as --pidfile + kill "$p" + c=150 + while [ "$c" -gt 0 ] && kill -0 "$p" 2> /dev/null ; do + sleep 0.20 + c=$((c - 1)) + [ "$((c % 5))" = 0 ] && echo -n . + done + if kill -0 "$p" 2> /dev/null; then kill -9 "$p"; fi + echo -n "[stopped: $file] " + done done } @@ -101,13 +122,13 @@ case "$1" in force-reload|restart) echo -n "Restarting $DESC: " killdaemons - sleep 5 + #sleep 5 startdaemons echo "$NAME." ;; *) N=/etc/init.d/$NAME - echo "Usage: $N {start|stop|force-reload|restart}" >&2 + echo "Usage: $N {start|stop|force-reload|restart} []" >&2 exit 1 ;; esac