diff -ruN smeserver-teamspeak-server-3.1.old/root/etc/e-smith/db/configuration/defaults/teamspeak/UDPPort smeserver-teamspeak-server-3.1/root/etc/e-smith/db/configuration/defaults/teamspeak/UDPPort --- smeserver-teamspeak-server-3.1.old/root/etc/e-smith/db/configuration/defaults/teamspeak/UDPPort 2018-03-05 13:58:35.286000777 +0100 +++ smeserver-teamspeak-server-3.1/root/etc/e-smith/db/configuration/defaults/teamspeak/UDPPort 2018-03-05 14:21:25.978001236 +0100 @@ -1 +1 @@ -8767 +9987 \ No newline at end of file diff -ruN smeserver-teamspeak-server-3.1.old/root/etc/rc.d/init.d/teamspeak smeserver-teamspeak-server-3.1/root/etc/rc.d/init.d/teamspeak --- smeserver-teamspeak-server-3.1.old/root/etc/rc.d/init.d/teamspeak 2018-03-05 13:58:35.286000777 +0100 +++ smeserver-teamspeak-server-3.1/root/etc/rc.d/init.d/teamspeak 2018-03-05 14:07:59.045000741 +0100 @@ -1,101 +1,104 @@ -#! /bin/bash -# Copyright (c) 2004 TeamSpeak team All rights reserved. -# -# Author: pwk.linuxfan 2004 -# Modified By Sylvain Gomez - sylvaingomez AT free.fr -# +#!/bin/bash +# Copyright (c) 2010 TeamSpeak Systems GmbH +# All rights reserved + # chkconfig: 345 85 15 # description: Runs and kills TeamSpeak Voice server at boot time and shutdown. # Source function library. -#. /etc/rc.d/init.d/functions - +. /etc/rc.d/init.d/functions # START OF CONFIG SECTION # WARNING ! For security reasons we advise: DO NOT RUN THE SERVER AS ROOT USER=teamspeak -DIR=/opt/teamspeak # END OF CONFIG SECTION +COMMANDLINE_PARAMETERS="${2}" #add any command line parameters you want to pass here +D1=$(readlink -f "$0") +BINARYPATH="/opt/teamspeak" +cd "${BINARYPATH}" +LIBRARYPATH="$(pwd)" +BINARYNAME="ts3server" case "$1" in start) - if [ -e $DIR/tsserver2.pid ]; then - echo "tsserver2.pid already exists...server already started ?"; - echo "If you are sure the server is not running, delete tsserver2.pid" - exit 1 - else - echo "starting the teamspeak2 server" - if [ -e $DIR/server_linux ]; then - if [ ! -x $DIR/server_linux ]; then - echo "server_linux is not executable, trying to set it" - chmod u+x $DIR/server_linux - fi - if [ -x $DIR/server_linux ]; then - WD=`pwd` - cd $DIR - su $USER -c "$DIR/server_linux -PID=tsserver2.pid" - cd $WD + 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 + 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 + + LD_LIBRARY_PATH="${LIBRARYPATH}:${LD_LIBRARY_PATH}" + exec /usr/local/bin/setuidgid ${USER} "./${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 "server_linux is not executable, fix this" - exit 4 + echo $PID > ts3server.pid + echo "TeamSpeak 3 server started, for details please view the log file" fi else - echo "Couldnt find server_linux" - exit 5 + echo "${BINARYNAME} is not exectuable, cannot start TeamSpeak 3 server" fi + else + echo "Could not find binary, aborting" + exit 5 fi ;; - stop) - if [ -e $DIR/tsserver2.pid ]; then - echo -n "stopping the teamspeak2 server" - if ( kill -TERM `cat $DIR/tsserver2.pid` ); then - for c in $(seq 1 300); do - if [ -e $DIR/tsserver2.pid ]; then + 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 [ -e $DIR/tsserver2.pid ]; then - echo "server does not shutdown cleanly - killing" - kill -KILL `cat $DIR/tsserver2.pid` - rm $DIR/tsserver2.pid - sleep 5 + 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 "tsserver2.pid is missing, no started server ?" + echo "No server running (ts3server.pid is missing)" exit 7 fi ;; restart) - $0 stop && $0 start || exit 1 + $0 stop && $0 start ${COMMANDLINE_PARAMETERS} || exit 1 ;; status) - if [ -e $DIR/tsserver2.pid ]; then - echo "the server seems to be running" - exit 0 - else - echo "the server seems to be stopped" - exit 3 - fi - ;; - passwords) - if [ -e $DIR/server.log ]; then - date=$(cat $DIR/server.log | grep "admin account info: username: admin" | tail -n 1 | sed "s/^\([0-9]\+-[0-9]\+-[0-9]\+ [0-9]\+:[0-9]\+:[0-9]\+\).*$/\1/") - spass=$(cat $DIR/server.log | grep "superadmin account info: username: superadmin" | tail -n 1 | sed "s/^.*username: superadmin password: \([a-z0-9]\+\).*$/\1/") - pass=$(cat $DIR/server.log | grep "admin account info: username: admin" | tail -n 1 | sed "s/^.*username: admin password: \([a-z0-9]\+\).*$/\1/") - echo "Following passwords were generated on $date" - echo "superadmin = \"$spass\"" - echo "admin = \"$pass\"" + 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 "server.log not found, maybe you did not start the server yet ?" - exit 1 + echo "No server running (ts3server.pid is missing)" fi ;; *) - echo "Usage: $0 {start|stop|restart|status|passwords}" + echo "Usage: ${0} {start|stop|restart|status}" exit 2 esac exit 0