PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Einfacher TS 3 Restarter



Darinum
29.08.2010, 22:00
Hallo,
vielleicht haben ja manche auch das Problem es crasht ein Programm und man ist nicht da und der gewünschte Dienst/Programm verrichtet nicht mehr seine gewünschte Funktion..
Mir ist es jedenfalls so bei unserem TeamSpeak 3 Server ergangen der ja z.Z. noch in der Beta steckt und irgendwann mal dachte er müsste öfters rummspacken und abstürzen also habe ich mal schnell ein kleines Restart-Script gebastelt und wollte es hier mal Online stellen falls jemand es auch gebrauchen kann, aber ich denke man kann es auch für fast jede andere Anwendung benutzen ;)

Hier der Code:



#!/bin/bash
#
# TS Restarter
# written by Darinum

VARIABLE=$(date +"%d/%m/%Y - %H:%m")

if pgrep ts3>/dev/null;
then
exit 0

else
echo -e " Restarte TeamSpeak 3 Server \033[0;32m $VARIABLE " > ts_crash_dump.txt
/PFADZUMTSVERZEICHNIS/ts3server_startscript.sh start
echo -e "\033[0;31m [DONE]"

fi


Was macht das Script nun?
Nunja zuerst einmal sucht es mit Hilfe von pgrep den Prozess ts3 (TS3 Server wird unter den Prozessen als: ts3server_linux angezeigt) ist der Prozess vorhanden beendet sich das Script.. sollte jetzt jedoch der Prozess nicht vorhanden sein, so erstellt es in dem Crash-Dump File einen Eintrag mit der Uhrzeit wann der TS Server neugestartet wurde, dazu habe ich das Script einfach in den Cronjob des Benutzers eingetragen und die Zeit der Überprüfungen auf 5 Minuten gestellt:



crontab -u USER -e

*/5 * * * * /PFADZUMSCRIPT/restart.sh



Wichtig ist nur hierbei das ihr das ganze nicht in den Cronjob des Benutzers root eintragt denn der TS sollte nicht als root gestartet werden ;)

Hoffe der ein oder andere kann das hier gebrauchen :)


MfG
Darinum

Gargi
29.08.2010, 22:23
Supi! Vielen Dank für das Tutorial! Sowas ist hier immer gerne gesehen!

cu
Gargi

Darinum
30.08.2010, 11:59
Hab einen kleinen Fehler gefunden ;)

In dieser Zeile:

echo -e " Restarte TeamSpeak 3 Server \033[0;32m $VARIABLE " > ts_crash_dump.txt

Wenn ihr nun das ">" durch ein ">>" ersetzt wird eine neue Zeile in eurer logdatei erstellt, anstatt das die aktuelle Datei überschrieben wird ;)


echo -e " Restarte TeamSpeak 3 Server \033[0;32m $VARIABLE " >> ts_crash_dump.txt

MfG
Darinum