#!/bin/bash # #iodined A IP over DNS tunnel # # chkconfig: 2345 90 10 # description: A IP over DNS tunnel, server part ### BEGIN INIT INFO # Provides: iodined # Should-Start: $network # Should-Stop: $network # Default-Start: 2 3 4 5 # Short-Description: A IP over DNS tunnel, server part # Description: A IP over DNS tunnel, server part ### END INIT INFO # Source function library. . /etc/rc.d/init.d/functions DAEMON_NAME=iodined DAEMON_PROCESS=$DAEMON_NAME DAEMON_BINARY=$DAEMON_NAME LOCK_FILE=/var/lock/subsys/$DAEMON_NAME RETVAL=0 PID_FILE=/var/run/$DAEMON_NAME.pid [ -f /etc/sysconfig/$DAEMON_NAME ] && . /etc/sysconfig/$DAEMON_NAME start() { [ -f $LOCK_FILE ] && return # do not use -t, as killproc will be unable to kill the daemon COMMAND_LINE="$DAEMON_BINARY -u iodined -F $PID_FILE" [ -z "$TOPDOMAIN" ] && echo "TOPDOMAIN is not set in /etc/sysconfig/$DAEMON_NAME" && return [ -z "$TUNNEL" ] && echo "TUNNEL is not set in /etc/sysconfig/$DAEMON_NAME" && return [ -z "$PASSWORD" ] && echo "PASSWORD is not set in /etc/sysconfig/$DAEMON_NAME" && return [ -n "$MTU" ] && COMMAND_LINE="$COMMAND_LINE -m $MTU" [ -n "$LISTEN" ] && COMMAND_LINE="$COMMAND_LINE -l $LISTEN" [ -n "$PORT" ] && COMMAND_LINE="$COMMAND_LINE -p $PORT" [ -n "$EXTERNAL" ] && COMMAND_LINE="$COMMAND_LINE -n $EXTERNAL" [ -n "$DNS_PORT" ] && COMMAND_LINE="$COMMAND_LINE -b $DNS_PORT" COMMAND_LINE="$COMMAND_LINE -P $PASSWORD $TUNNEL $TOPDOMAIN" gprintf "Starting %s: " "$DAEMON_NAME" daemon --pidfile=$PID_FILE $COMMAND_LINE RETVAL=$? echo [ $RETVAL -eq 0 ] && touch $LOCK_FILE } stop() { gprintf "Shutting down %s: " "$DAEMON_NAME" killproc -p $PID_FILE $DAEMON_PROCESS RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f $LOCK_FILE } case "$1" in start) start ;; stop) stop ;; status) status -p $PID_FILE $DAEMON_PROCESS RETVAL=$? ;; restart) stop start ;; condrestart) if [ -f $LOCK_FILE ]; then stop start fi ;; *) gprintf "Usage: %s {start|stop|restart|condrestart|status}\n" "$0" RETVAL=1 esac exit $RETVAL