filimonic

TSDNS Server Debian Sueeze Init.D

Mar 20th, 2012
469
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/bin/sh
  2.  
  3. ### BEGIN INIT INFO
  4. # Provides:          tsdns-server
  5. # Required-Start:    $local_fs $remote_fs $network $syslog
  6. # Required-Stop:     $local_fs $remote_fs $network $syslog
  7. # Default-Start:     2 3 4 5
  8. # Default-Stop:      0 1 6
  9. # Short-Description: starts the teamspeak-dns server
  10. # Description:       starts teamspeak-dns server using start-stop-daemon
  11. ### END INIT INFO
  12.  
  13.  
  14. # by Alexey D. Filimonov [ alexey _A_T_ filimonic _dot_ net ]
  15.  
  16.  
  17. D1=$(readlink -f "$0")
  18. DAEMONNAME="tsdns-server"
  19. TSUSER="ts3-server"
  20. BINARYPATH="/usr/bin"
  21. PIDFILE="/var/run/$DAEMONNAME.pid"
  22. cd "${BINARYPATH}"
  23. BINARYNAME="$DAEMONNAME"
  24. INIPATH="/etc/$DAEMONNAME/config/"
  25. WORKDIR="$INIPATH"
  26.  
  27. /usr/sbin/adduser --system --no-create-home --shell /bin/true --group --disabled-password --disabled-login $TSUSER > /dev/null
  28.  
  29. chmod a+r ${INIPATH}tsdns_settings.ini
  30. chmod a+X ${INIPATH}
  31.  
  32.  
  33. if [ "${2}" != "nodaemon" ]
  34.         then
  35.         DO_DAEMONIZE="YES"
  36.         fi
  37.  
  38. case "$1" in
  39.         start)
  40.                 if [ -e $PIDFILE ]; then
  41.                         if ( kill -0 $(cat $PIDFILE) 2> /dev/null ); then
  42.                                 echo "The server is already running, try restart or stop"
  43.                                 exit 1
  44.                         else
  45.                                 echo "$PIDFILE found, but no server running. Possibly your previously started server crashed"
  46.                                 echo "Please view the logfile for details."
  47.                                 rm $PIDFILE
  48.                         fi
  49.                 fi
  50.                 if [ "${UID}" = "0" ]; then
  51.                         echo WARNING ! For security reasons we advise: DO NOT RUN THE SERVER AS ROOT
  52.                         c=1
  53.                         while [ "$c" -le 10 ]; do
  54.                                 echo -n "!"
  55.                                 sleep 1
  56.                                 c=$((++c))
  57.                         done
  58.                         echo "!"
  59.                 fi
  60.                 echo "Starting the TeamSpeakDNS server"
  61.                 if [ -e "$BINARYNAME" ]; then
  62.                         if [ ! -x "$BINARYNAME" ]; then
  63.                                 echo "${BINARYNAME} is not executable, trying to set it"
  64.                                 chmod u+x "${BINARYNAME}"
  65.                         fi
  66.                         if [ -x "$BINARYNAME" ]; then
  67.                                 touch $PIDFILE
  68.                                 chown $TSUSER:$TSUSER $PIDFILE
  69.                                 chmod a+w $PIDFILE
  70.  
  71. #UNDOCUMENTED! TSDNS USES /lib/init/rw/tsdns_update
  72.                                 rm -f /lib/init/rw/tsdns_update
  73.                                 rm -f /dev/shm/tsdns_update
  74.                         if [ "$DO_DAEMONIZE" = "YES" ] ; then
  75.                                         echo "Going background"
  76. start-stop-daemon --start --startas $BINARYPATH/$BINARYNAME --pidfile $PIDFILE --name $DAEMONNAME --chuid $TSUSER  --background --make-pidfile --verbose --chdir $WORKDIR
  77.                                 else
  78.                                         echo "Leaving foreground. Press Ctrl+C to stop"
  79. start-stop-daemon --start --startas $BINARYPATH/$BINARYNAME --pidfile $PIDFILE --name $DAEMONNAME --chuid $TSUSER   --make-pidfile --verbose --chdir $WORKDIR
  80.                                 fi
  81.                                 sleep 3
  82.                                 chown root:root $PIDFILE
  83.                                 chmod a-w $PIDFILE
  84.                                 chmod u+rwx $PIDFILE
  85.                                 echo "PID:"
  86.                                 cat $PIDFILE
  87.                                 #echo $! > $PIDFILE
  88.                                 echo "TeamSpeakDNS server started, for details please view the log file"
  89.                         else
  90.                                 echo "${BINARNAME} is not exectuable, cannot start TeamSpeak 3 server"
  91.                         fi
  92.                 else
  93.                         echo "Could not find binary, aborting"
  94.                         exit 5
  95.                 fi
  96.         ;;
  97.         stop)
  98.                 if [ -e $PIDFILE ]; then
  99.                         echo -n "Stopping the TeamSpeakDNS server"
  100.                         if ( kill -TERM $(cat $PIDFILE) 2> /dev/null ); then
  101.                                 c=1
  102.                                 while [ "$c" -le 300 ]; do
  103.                                         if ( kill -0 $(cat $PIDFILE) 2> /dev/null ); then
  104.                                                 echo -n "."
  105.                                                 sleep 1
  106.                                         else
  107.                                                 break
  108.                                         fi
  109.                                         c=$((++c))
  110.                                 done
  111.                         fi
  112.                         if ( kill -0 $(cat $PIDFILE) 2> /dev/null ); then
  113.                                 echo "Server is not shutting down cleanly - killing"
  114.                                 kill -KILL $(cat $PIDFILE)
  115.                         else
  116.                                 echo "done"
  117.                         fi
  118.                         rm $PIDFILE
  119.                 else
  120.                         echo "No server running ($PIDFILE is missing)"
  121.                         exit 7
  122.                 fi
  123.         ;;
  124.         restart)
  125.                 $0 stop && $0 start || exit 1
  126.         ;;
  127.         status)
  128.                 if [ -e $PIDFILE ]; then
  129.                         if ( kill -0 $(cat $PIDFILE) 2> /dev/null ); then
  130.                                 echo "Server is running"
  131.                         else
  132.                                 echo "Server seems to have died"
  133.                         fi
  134.                 else
  135.                         echo "No server running ($PIDFILE is missing)"
  136.                 fi
  137.         ;;
  138.         *)
  139.                 echo "Usage: ${0} {start|stop|restart|status} [{nodaemon|daemon}"
  140.                 exit 2
  141. esac
  142. exit 0
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×