From 92e7924cef3e72f12ca495756b54bf301ca00ca9 Mon Sep 17 00:00:00 2001 From: fithwum <34775371+fithwum@users.noreply.github.com> Date: Sun, 30 Dec 2018 11:28:27 -0800 Subject: [PATCH] Create ts3server_startscript.sh --- scripts/ts3server_startscript.sh | 102 +++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 scripts/ts3server_startscript.sh diff --git a/scripts/ts3server_startscript.sh b/scripts/ts3server_startscript.sh new file mode 100644 index 0000000..835f4bb --- /dev/null +++ b/scripts/ts3server_startscript.sh @@ -0,0 +1,102 @@ +#!/bin/bash +# Copyright (c) 2010 TeamSpeak Systems GmbH +# All rights reserved + +COMMANDLINE_PARAMETERS="inifile=ts3server.ini" #add any command line parameters you want to pass here +LIBRARYPATH="$(pwd)" +BINARYNAME="ts3server" + +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 + echo "ts3server.pid found, but no server running. Possibly your previously started server crashed" + echo "Please view the logfile for details." + rm ts3server.pid + fi + fi + if [ "${UID}" = "0" ]; then + echo WARNING ! For security reasons we advise: DO NOT RUN THE SERVER AS ROOT + c=1 + while [ "$c" -le 10 ]; do + echo -n "!" + sleep 1 + c=$(($c+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 & + PID=$! + ps -p ${PID} > /dev/null 2>&1 + if [ "$?" -ne "0" ]; then + echo "TeamSpeak 3 server could not start" + else + echo $PID > ts3server.pid + echo "TeamSpeak 3 server started, for details please view the log file" + fi + else + echo "${BINARNAME} is not exectuable, cannot start TeamSpeak 3 server" + fi + else + echo "Could not find binary, 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 + c=1 + while [ "$c" -le 300 ]; do + if ( kill -0 $(cat ts3server.pid) 2> /dev/null ); then + echo -n "." + sleep 1 + else + break + fi + c=$(($c+1)) + 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 running (ts3server.pid is missing)" + exit 7 + fi + ;; + restart) + $0 stop && $0 start ${COMMANDLINE_PARAMETERS} || 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 2 +esac +exit 0 +