DAEMON=/usr/bin/stunnel4
NAME=stunnel
DESC="SSL tunnels"
-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
{
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
}
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} [<stunnel instance>]" >&2
exit 1
;;
esac