X-Git-Url: https://git.syn-net.org/?p=debian%2Fuanytun.git;a=blobdiff_plain;f=etc%2Finit.d%2Fuanytun;h=9c2414a23eca6d0357629fb1b94290de2681146c;hp=781e8099b93180c1a70b56b51f18401e37ebb7b2;hb=aa74a4fd24d8e8537f76531e6257fa90145355d3;hpb=e3f8e33112e2191999c6d6f6b6a767c72db800a0 diff --git a/etc/init.d/uanytun b/etc/init.d/uanytun index 781e809..9c2414a 100755 --- a/etc/init.d/uanytun +++ b/etc/init.d/uanytun @@ -13,6 +13,7 @@ DAEMON=/usr/sbin/uanytun CONFIG_DIR=/etc/uanytun NAME=uanytun DESC=uanytun +VARRUN_DIR=/var/run/$NAME test -x $DAEMON || exit 0 @@ -23,15 +24,16 @@ fi start_vpn () { STATUS="OK" - if [ -f $CONFIG_DIR/$NAME/config ] ; then + if [ -f $CONFIG_DIR/$VPNNAME/config ] ; then POSTUP='' - test -f $CONFIG_DIR/$NAME/post-up.sh && POSTUP="-x $CONFIG_DIR/$NAME/post-up.sh" - CHROOTDIR=`grep '^chroot' < $CONFIG_DIR/$NAME/config | sed 's/chroot\s*//'` + test -f $CONFIG_DIR/$VPNNAME/post-up.sh && POSTUP="-x $CONFIG_DIR/$VPNNAME/post-up.sh" + CHROOTDIR=`grep '^chroot' < $CONFIG_DIR/$VPNNAME/config | sed 's/chroot\s*//'` if [ -n "$CHROOTDIR" ] ; then test -d $CHROOTDIR || mkdir -p $CHROOTDIR fi - DAEMONARG=`sed 's/#.*//' < $CONFIG_DIR/$NAME/config | grep -e '\w' | sed 's/^/--/' | tr '\n' ' '` - $DAEMON --write-pid /var/run/uanytun.$NAME.pid $POSTUP $DAEMONARG || STATUS="FAILED" + test -d $VARRUN_DIR || mkdir -p $VARRUN_DIR + DAEMONARG=`sed 's/#.*//' < $CONFIG_DIR/$VPNNAME/config | grep -e '\w' | sed 's/^/--/' | tr '\n' ' '` + $DAEMON --write-pid $VARRUN_DIR/$VPNNAME.pid $POSTUP $DAEMONOPTS $DAEMONARG || STATUS="FAILED" else STATUS="no config found" fi @@ -48,8 +50,8 @@ case "$1" in echo -n "Starting $DESC:" if test -z "$2" ; then if [ -f $CONFIG_DIR/autostart ] ; then - for NAME in `sed 's/#.*//' < $CONFIG_DIR/autostart | grep -e '\w'`; do - echo -n " $NAME" + for VPNNAME in `sed 's/#.*//' < $CONFIG_DIR/autostart | grep -e '\w'`; do + echo -n " $VPNNAME" start_vpn done else @@ -59,8 +61,8 @@ case "$1" in else while shift ; do [ -z "$1" ] && break - NAME=$1 - echo -n " $NAME" + VPNNAME=$1 + echo -n " $VPNNAME" start_vpn done fi @@ -69,20 +71,18 @@ case "$1" in stop) echo -n "Stoping $DESC:" if test -z "$2" ; then - for PIDFILE in `ls /var/run/uanytun.*.pid 2> /dev/null`; do - NAME=`echo $PIDFILE | cut -c18-` - NAME=${NAME%%.pid} - echo -n " $NAME" + for PIDFILE in `ls $VARRUN_DIR/*.pid 2> /dev/null`; do + VPNNAME=`basename $PIDFILE .pid` + echo -n " $VPNNAME" stop_vpn done else while shift ; do [ -z "$1" ] && break - if test -e /var/run/uanytun.$1.pid ; then - PIDFILE=`ls /var/run/uanytun.$1.pid 2> /dev/null` - NAME=`echo $PIDFILE | cut -c18-` - NAME=${NAME%%.pid} - echo -n " $NAME" + if test -e $VARRUN_DIR/$1.pid ; then + PIDFILE=`ls $VARRUN_DIR/$1.pid 2> /dev/null` + VPNNAME=`basename $PIDFILE .pid` + echo -n " $VPNNAME" stop_vpn else echo -n " (failure: No such tunnel is running: $1)" @@ -94,21 +94,19 @@ case "$1" in reload) echo -n "Reloading $DESC:" if test -z "$2" ; then - for PIDFILE in `ls /var/run/uanytun.*.pid 2> /dev/null`; do - NAME=`echo $PIDFILE | cut -c18-` - NAME=${NAME%%.pid} - echo -n " $NAME" + for PIDFILE in `ls $VARRUN_DIR/*.pid 2> /dev/null`; do + VPNNAME=`basename $PIDFILE .pid` + echo -n " $VPNNAME" stop_vpn start_vpn done else while shift ; do [ -z "$1" ] && break - if test -e /var/run/uanytun.$1.pid ; then - PIDFILE=`ls /var/run/uanytun.$1.pid 2> /dev/null` - NAME=`echo $PIDFILE | cut -c18-` - NAME=${NAME%%.pid} - echo -n " $NAME" + if test -e $VARRUN_DIR/$1.pid ; then + PIDFILE=`ls $VARRUN_DIR/$1.pid 2> /dev/null` + VPNNAME=`basename $PIDFILE .pid` + echo -n " $VPNNAME" stop_vpn start_vpn else @@ -118,7 +116,7 @@ case "$1" in fi echo "." ;; - restart) + restart|force-reload) SCRIPT=$0 shift $SCRIPT stop $*