#!/bin/bash# Copyright (c) 2010 TeamSpeak Systems GmbH# All rights reservedCOMMANDLINE_PARAMETERS="" #add any command line parameters you want to pass hereif [ -e "ts3server_linux_x86" ]; then BINARYNAME="ts3server_linux_x86"else BINARYNAME="ts3server_linux_amd64"fiBINARYPATH="."cd "${BINARYPATH}"LIBRARYPATH="$(pwd)"case "$1" in start) if [ -e ts3server.pid ]; then if ( kill -0 $(cat ts3server.pid) 2> /dev/null ); then echo "The server is already running, try restart or stop" exit 1 else rm ts3server.pid fi fi if [ "${UID}" = "0" ]; then echo WARNING ! For security reasons we advise: DO NOT RUN THE SERVER AS ROOT for c in $(seq 1 10); do echo -n "!" sleep 1 done echo "!" fi echo "Starting the TeamSpeak 3 server" if [ -e "$BINARYNAME" ]; then if [ ! -x "$BINARYNAME" ]; then echo "${BINARYNAME} is not executable, trying to set it" chmod u+x "${BINARYNAME}" fi if [ -x "$BINARYNAME" ]; then export LD_LIBRARY_PATH="${LIBRARYPATH}:${LD_LIBRARY_PATH}" "./${BINARYNAME}" ${COMMANDLINE_PARAMETERS} > /dev/null 2>&1 & echo $! > ts3server.pid echo "TeamSpeak 3 server started, for details please view the log file" else echo "${BINARNAME} is not exectuable, cannot start TeamSpeak 3 server" fi else echo "Could not find ${BINARYNAME}, aborting" exit 5 fi ;; stop) if [ -e ts3server.pid ]; then echo -n "Stopping the TeamSpeak 3 server" if ( kill -TERM $(cat ts3server.pid) 2> /dev/null ); then for c in $(seq 1 300); do if ( kill -0 $(cat ts3server.pid) 2> /dev/null ); then echo -n "." sleep 1 fi done fi if ( kill -0 $(cat ts3server.pid) 2> /dev/null ); then echo "Server is not shutting down cleanly - killing" kill -KILL $(cat ts3server.pid) else echo "done" fi rm ts3server.pid else echo "No server runing (ts3server.pid is missing)" exit 7 fi ;; restart) $0 stop && $0 start || exit 1 ;; status) if [ -e ts3server.pid ]; then if ( kill -0 $(cat ts3server.pid) 2> /dev/null ); then echo "Server is running" else echo "Server seems to have died" fi else echo "No server running (ts3server.pid is missing)" fi ;; *) echo "Usage: ${0} {start|stop|restart|status}" exit 2esacexit 0