#!/bin/sh # # vtun Script for starting and stoping vtund. # # chkconfig: 345 55 45 # description: vtund Virtual Tunnel Daemon. \ # VTun provides the method for creating Virtual Tunnels over \ # TCP/IP networks and allows to shape, compress, encrypt \ # traffic in that tunnels. # Source function library. . /etc/rc.d/init.d/functions # Get network config . /etc/sysconfig/network # Check that networking is up. if is_yes "${NETWORKING}"; then if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then msg_network_down Vtund exit 1 fi else exit 0 fi # Get service config [ -f /etc/sysconfig/vtun ] && . /etc/sysconfig/vtun err_exit() { echo $@ exit 1 } [ -n "$VTUND_MODE" ] || err_exit "VTUND_MODE not set" VTUND_OPTS="$VTUND_OPTS -f $VTUND_CONF" if [ $VTUND_MODE = "server" ]; then VTUND_OPTS="$VTUND_OPTS -s" elif [ $VTUND_MODE = "client" ]; then [ -n "$VTUND_SESSION" ] || err_exit "VTUND_SESSION not set" [ -n "$VTUND_SERVER_ADDR" ] || err_exit "VTUND_SERVER_ADDR not set" [ -n "$VTUND_PORT" ] && VTUND_OPTS="$VTUND_OPTS -P $VTUND_PORT" VTUND_OPTS="$VTUND_OPTS $VTUND_SESSION $VTUND_SERVER_ADDR" else err_exit "Invalid VTUND_MODE ($VTUND_MODE), should be set to \"server\" or \"client\"" fi RETVAL=0 # See how we were called. case "$1" in start) # Check if the service is already running? if [ ! -f /var/lock/subsys/vtund ]; then msg_starting Vtund daemon vtund $VTUND_OPTS RETVAL=$? [ $RETVAL -eq 0 ] && touch /var/lock/subsys/vtund else msg_already_running Vtund fi ;; stop) if [ -f /var/lock/subsys/vtund ]; then # Stop daemons. msg_stopping Vtund killproc vtund rm -f /var/lock/subsys/vtund >/dev/null 2>&1 else msg_not_running Vtund fi ;; restart|force-reload) $0 stop $0 start exit $? ;; status) status vtund exit $? ;; *) msg_usage "$0 {start|stop|restart|force-reload|status}" exit 3 esac exit $RETVAL