#! /bin/sh ### BEGIN INIT INFO # Provides: danted-authenticating # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: SOCKS (v4 and v5) proxy daemon (danted) ### END INIT INFO # # dante SOCKS server init.d file. Based on /etc/init.d/skeleton: # Version: @(#)skeleton 1.8 03-Mar-1998 miquels@cistron.nl PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/sbin/danted NAME=danted-authenticating DESC="Dante SOCKS daemon" PIDFILE=/var/run/$NAME.pid CONFFILE=/etc/$NAME.conf DANTED_ARGS="-D -f $CONFFILE" test -f $DAEMON || exit 0 set -e # This function makes sure that the Dante server can write to the pid-file. touch_pidfile () { if [ -r $CONFFILE ]; then uid="`sed -n -e 's/[[:space:]]//g' -e 's/#.*//' -e '/^user\.privileged/{s/[^:]*://p;q;}' \ $CONFFILE`" if [ -n "$uid" ]; then touch $PIDFILE chown $uid $PIDFILE fi fi } . /lib/lsb/init-functions case "$1" in start) if ! egrep -cve '^ *(#|$)' \ -e '^(logoutput|user\.((not)?privileged|libwrap)):' $CONFFILE > /dev/null then echo "Not starting $DESC: not configured." exit 0 fi echo -n "Starting $DESC: " touch_pidfile start-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE \ --exec $DAEMON -- $DANTED_ARGS echo "$NAME." ;; stop) echo -n "Stopping $DESC: " start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE --exec $DAEMON echo "$NAME." ;; reload|force-reload) # # If the daemon can reload its config files on the fly # for example by sending it SIGHUP, do it here. # # If the daemon responds to changes in its config file # directly anyway, make this a do-nothing entry. # echo "Reloading $DESC configuration files." start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE \ --exec $DAEMON -- $DANTED_ARGS ;; restart) # # If the "reload" option is implemented, move the "force-reload" # option to the "reload" entry above. If not, "force-reload" is # just the same as "restart". # echo -n "Restarting $DESC: " start-stop-daemon --stop --quiet --pidfile $PIDFILE --exec $DAEMON sleep 1 touch_pidfile start-stop-daemon --start --quiet --pidfile $PIDFILE \ --exec $DAEMON -- $DANTED_ARGS echo "$NAME." ;; status) status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? ;; *) N=/etc/init.d/$NAME # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2 echo "Usage: $N {start|stop|restart|force-reload}" >&2 exit 1 ;; esac exit 0