#! /bin/bash
# Copyright (c) 2004 TeamSpeak team All rights reserved.
#
# Author: pwk.linuxfan 2004
#
case "$1" in
start)
if [ -e 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
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 teamspeak2 server"
if [ -e server_linux ]; then
if [ ! -x server_linux ]; then
echo "server_linux is not executable, trying to set it"
chmod u+x server_linux
fi
if [ -x server_linux ]; then
./server_linux -PID=tsserver2.pid
else
echo "server_linux is not executable, fix this"
exit 4
fi
else
echo "Couldnt find server_linux"
exit 5
fi
fi
;;
stop)
if [ -e tsserver2.pid ]; then
echo -n "stopping the teamspeak2 server"
if ( kill -TERM `cat tsserver2.pid` ); then
for c in $(seq 1 300); do
if [ -e tsserver2.pid ]; then
echo -n "."
sleep 1
fi
done
fi
if [ -e tsserver2.pid ]; then
echo "server does not shutdown cleanly - killing"
kill -KILL `cat tsserver2.pid`
rm tsserver2.pid
sleep 5
else
echo "done"
fi
else
echo "tsserver2.pid is missing, no started server ?"
exit 7
fi
;;
restart)
$0 stop && $0 start || exit 1
;;
status)
if [ -e 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 server.log ]; then
date=$(cat server.log | grep "admin account info: username: admin" | tail -n 1 | sed "s/^\([0-9]\+-[$
spass=$(cat server.log | grep "superadmin account info: username: superadmin" | tail -n 1 | sed "s/^$
pass=$(cat server.log | grep "admin account info: username: admin" | tail -n 1 | sed "s/^.*username:$
echo "Following passwords were generated on $date"
echo "superadmin = \"$spass\""
echo "admin = \"$pass\""
else
echo "server.log not found, maybe you did not start the server yet ?"
exit 1
fi
;;
*)
echo "Usage: $0 {start|stop|restart|status|passwords}"
exit 2
esac
exit 0