BEQLEUNXP1NB103 - Cygwin - Files

From miki
Revision as of 21:00, 21 September 2009 by Mip (talk | contribs) (new version using autossh)
Jump to navigation Jump to search

{{#fileanchor: sshproxy}}

#! /bin/sh
#
# sshproxy            Setup ssh port forwarding (imap) and SOCKS 5 proxy  
#					  ssh connection is made persistent thanks to autossh
#
# Author:             Michaël Peeters
#
# Prerequisite:		  ssh-agent must be running in background (autossh won't ask for password)
#
# chkconfig:          235 70 40
# description:        sshproxy startup script.

SUBSYS=sshproxy
TARGET=/usr/bin/autossh

# Source function library.
. /etc/rc.d/init.d/functions

# Some functions to make the below more readable
PID_FILE=/var/run/$SUBSYS.pid

[ -f $TARGET ] || exit 0

RETVAL=0

# See how we were called.
case "$1" in
  start)
	echo -n $"Starting $SUBSYS:"
	[ -f $PID_FILE ] && echo_failure && exit 1

	AUTOSSH_PIDFILE=$PID_FILE
	AUTOSSH_POLL=300
	/usr/bin/autossh -M 0 -f -N -n -q -L 9025:smtp.priorweb.be:25 -L 9143:mail.priorweb.be:143 -L 9026:mail.altranweb.be:25 -L 9144:mail.altranweb.be:143 -D 1080 noekeon
	RETVAL=$?

	echo -n -e $"\rStarting $SUBSYS:"
	if [ $RETVAL -eq 0 ]; then
		touch /var/lock/subsys/$SUBSYS
		echo_success
	else
		echo_failure
	fi
	;;
  stop)
	echo -n $"Stopping $SUBSYS:"
	if [ ! -f $PID_FILE ]; then echo_failure; exit 1; fi
	read PID < $PID_FILE
	kill -SIGKILL $PID>/dev/null
	rm $PID_FILE
	RETVAL=$?
	if [ $RETVAL -eq 0 ]; then
		rm -f /var/lock/subsys/$SUBSYS
		echo_success
	else
		echo_failure
	fi
	;;
  status)
	# First try "pidof"
	pid=`pidof -o $$ -o $PPID -o %PPID -x $TARGET`
	if [ "$pid" != "" ] ; then
	        echo $"$SUBSYS (pid $pid) is running..."
	        exit 0
	fi

	# Next try "/var/run/*.pid" files
	if [ -f $PID_FILE ] ; then
	        read pid < $PID_FILE
	        if [ "$pid" != "" ] ; then
	                echo $"$SUBSYS dead but pid file exists"
	                exit 1
	        fi
	fi
	# See if /var/lock/subsys/$SUBSYS exists
	if [ -f /var/lock/subsys/$SUBSYS ]; then
		echo $"$SUBSYS dead but subsys locked"
		exit 2
	fi
	echo $"$SUBSYS is stopped"
	exit 3
	;;
  refresh)
    read PID < $PID_FILE
	kill -s SIGHUP $PID
	;;
  restart)
  	$0 stop
	echo -ne "\n"
	$0 start
	RETVAL=$?
	;;
  *)
	echo "Usage: $SUBSYS {start|stop|status|restart}"
	exit 1
esac

exit $RETVAL