X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;ds=sidebyside;f=modules%2Fstunnel4%2Ffiles%2Fetc-init.d-stunnel4;fp=modules%2Fstunnel4%2Ffiles%2Fetc-init.d-stunnel4;h=8549c40bdb59c1f5443208f6eb7c3ad0a7ac6444;hb=e01a265d60e6aaa77a44dc832bfdb71ed506baf3;hp=0000000000000000000000000000000000000000;hpb=802933ac23f7433f1990141cf2623d888ba7790d;p=mirror%2Fdsa-puppet.git diff --git a/modules/stunnel4/files/etc-init.d-stunnel4 b/modules/stunnel4/files/etc-init.d-stunnel4 new file mode 100755 index 000000000..8549c40bd --- /dev/null +++ b/modules/stunnel4/files/etc-init.d-stunnel4 @@ -0,0 +1,109 @@ +#! /bin/sh -e +### BEGIN INIT INFO +# Provides: stunnel4 +# Required-Start: $local_fs $remote_fs +# Required-Stop: $local_fs $remote_fs +# Should-Start: $syslog +# Should-Stop: $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Start or stop stunnel 4.x (SSL tunnel for network daemons) +### END INIT INFO + +DEFAULTPIDFILE="/var/run/stunnel4.pid" +DAEMON=/usr/bin/stunnel4 +NAME=stunnel +DESC="SSL tunnels" +FILES="/etc/stunnel/*.conf" +OPTIONS="" +ENABLED=0 + +get_pids() { + local file=$1 + if test -f $file; then + CHROOT=`grep "^chroot" $file|sed "s;.*= *;;"` + PIDFILE=`grep "^pid" $file|sed "s;.*= *;;"` + if [ "$PIDFILE" = "" ]; then + PIDFILE=$DEFAULTPIDFILE + fi + if test -f $CHROOT/$PIDFILE; then + cat $CHROOT/$PIDFILE + fi + fi +} + +startdaemons() { + if ! [ -d /var/run/stunnel4 ]; then + rm -rf /var/run/stunnel4 + install -d -o stunnel4 -g stunnel4 /var/run/stunnel4 + fi + for file in $FILES; do + if test -f $file; then + ARGS="$file $OPTIONS" + PROCLIST=`get_pids $file` + if [ "$PROCLIST" ] && kill -0 $PROCLIST 2>/dev/null; then + echo -n "[Already running: $file] " + elif $DAEMON $ARGS; then + echo -n "[Started: $file] " + else + echo "[Failed: $file]" + echo "You should check that you have specified the pid= in you configuration file" + exit 1 + fi + fi + done; +} + +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 + done +} + +if [ "x$OPTIONS" != "x" ]; then + OPTIONS="-- $OPTIONS" +fi + +test -f /etc/default/stunnel4 && . /etc/default/stunnel4 +if [ "$ENABLED" = "0" ] ; then + echo "$DESC disabled, see /etc/default/stunnel4" + exit 0 +fi + +test -x $DAEMON || exit 0 + +set -e + +case "$1" in + start) + echo -n "Starting $DESC: " + startdaemons + echo "$NAME." + ;; + stop) + echo -n "Stopping $DESC: " + killdaemons + echo "$NAME." + ;; +#force-reload does not send a SIGHUP, since SIGHUP is interpreted as a +#quit signal by stunnel. I reported this problem to upstream authors. + force-reload|restart) + echo -n "Restarting $DESC: " + killdaemons + sleep 5 + startdaemons + echo "$NAME." + ;; + *) + N=/etc/init.d/$NAME + echo "Usage: $N {start|stop|force-reload|restart}" >&2 + exit 1 + ;; +esac + +exit 0