diff --git a/tunnelkeeper b/tunnelkeeper index a1e7c99..ecbbc58 100755 --- a/tunnelkeeper +++ b/tunnelkeeper @@ -3,6 +3,8 @@ REALPATH="$(realpath $0)" BASEDIR="${REALPATH%/*}" +dev='/dev/null' + mkdir -p "$BASEDIR/var" mkdir -p "$BASEDIR/etc" CONFFILE="$BASEDIR/etc/tunnels.conf" @@ -19,6 +21,10 @@ function ruroot () { fi } +if [[ "${2}" == "--debug" ]]; then + dev='/dev/stdout' +fi + case "$1" in FORKSTART ) @@ -34,18 +40,18 @@ case "$1" in # else # This process connects the tunnel # touch "$BASEDIR/var/${2}.connected" # while [[ -e "$BASEDIR/var/${2}.connected" ]]; do - # ssh -F $CONFFILE -N $2 &> /dev/null + # ssh -F $CONFFILE -N $2 &> $dev # sleep 5 # done # fi touch "$BASEDIR/var/${2}.connected" while [[ -e "$BASEDIR/var/${2}.connected" ]]; do - ssh -F $CONFFILE -N $2 &> /dev/null + ssh -F $CONFFILE -N $2 &> $dev sleep 5 done ;; FORKKILL ) - kill $(sudo netstat -tnlp | grep "127.0.0.1:${2}" | grep -o '[0-9]*/ssh' | grep -o '[0-9]*') &>/dev/null + kill $(sudo netstat -tnlp | grep "127.0.0.1:${2}" | grep -o '[0-9]*/ssh' | grep -o '[0-9]*') &> $dev ;; FORKDEL ) rm "$BASEDIR/var/${2}.connected" @@ -55,12 +61,12 @@ case "$1" in exit fi echo $$ > "$BASEDIR/var/tunnelkeeper.pid" - cat "$CONFFILE" | awk '/^Host / {print $2}' | xargs -I% -P0 $0 FORKSTART % &>/dev/null & + cat "$CONFFILE" | awk '/^Host / {print $2}' | xargs -I% -P0 $0 FORKSTART % &> $dev & ;; stop) rm "$BASEDIR/var/tunnelkeeper.pid" cat "$CONFFILE" | awk '/^Host / {print $2}' | sed 's/^Host //' | xargs -I% -P0 $0 FORKDEL % - cat "$CONFFILE" | grep -o 'LocalForward [0-9]* ' | grep -o '[0-9]*' | xargs -I% -P0 $0 FORKKILL % &>/dev/null + cat "$CONFFILE" | grep -o 'LocalForward [0-9]* ' | grep -o '[0-9]*' | xargs -I% -P0 $0 FORKKILL % &> $dev ;; install ) ruroot @@ -106,7 +112,7 @@ WantedBy=multi-user.target" > /lib/systemd/system/tunnelkeeper.service ruroot vi "$CONFFILE" ;; - * ) - echo -e "\nUsage: $(basename $0) [start|stop|install|uninstall|config|list]\n" + * ) + echo -e "\nUsage: $(basename $0) start|stop|install|uninstall|config|list [--debug]\n" ;; esac