Page 1 of 1

TS3MusicBot restart (CronJob)

Posted: Tue Nov 10, 2015 10:22 am
by knie
Ich verwende Ubuntu 12.04.5 LTS und habe den TS3Bot über einen eigenen User laufen.
Seit einiger Zeit hängt sich der Bot bei Streams nach einigen Tagen auf.

Damit ich nicht jedes mal von Hand einen Neustart durchführen muss, wollte ich dies via CronJob einbinden.

Hier ein Script, welcher soweit funktioniert:
Code: Select all
#!/bin/sh

screen -S musicbot1 -X stuff 'stop'

sleep 15

cd /home/musicbot/TS3MusicBot

echo "start musicbot1"
screen -dmS musicbot1 ./TS3MusicBot_runscript.sh -account EMAIL -port 8090 -webif-pw MASTERPW -webif-pw-user USERPW
Mit crontab -e habe ich wie folgt hinterlegt:
Code: Select all
0 5 * * * /home/musicbot/TS3MusicBot/musicbot.sh
Mit grep CRON /var/log/syslog sehe ich zwar das der Job glaufen ist, aber nicht ob es erfolgreich war.
Und nach den Verbindungszeiten sehe ich, dass der Bot eben nicht neugestartet wurde.

Gibt es hier noch etwas zu beachten bzw. hat jemand einen Tipp?

Besten Dank vorab!
Gruß knie

Re: TS3MusicBot restart (CronJob)

Posted: Tue Nov 10, 2015 2:12 pm
by Ronneberg
Stoppt der TS3MusicBot wenn du
Code: Select all
screen -S musicbot1 -X stuff 'stop'
ausführst?
Ist am Ende der crontab Datei eine freie Zeile? Falls nicht einfach nach dem letzten cronjob noch einmal Enter drücken.
Läuft crontab? Wenn
Code: Select all
pgrep cron
keine Zahl zurückgibt einfach cron über einen der Commands starten:
Code: Select all
service cron start
/etc/init.d/cron start
Ist das Script ausführbar?
Code: Select all
chmod +x script.sh

Re: TS3MusicBot restart (CronJob)

Posted: Wed Nov 11, 2015 7:27 am
by knie
Danke für die schnelle Rückmeldung.

Habe den Script angepasst, da ich hier erst dachte was vergessen zu haben (/n):
Code: Select all
screen -S musicbot1 -X stuff 'stop/n'
Doch leider passiert auch mit 'stop/n' nichts und der Screen läuft weiter.

Also habe ich nun etwas anderes probiert:
Code: Select all
screen -p 0 -S musicbot1 -X quit
Nicht unbedingt die saubere Art den Bot zu stoppen, aber es geht.

Der crontab läuft, bekomme mit
Code: Select all
pgrep cron
eine Ausgabe. Neustart des Dienstes habe ich auch schon versucht gehabt ^^

Was soll mit dem Befehl
Code: Select all
chmod +x script.sh
explizit passieren oder ausgegeben werden?

Re: TS3MusicBot restart (CronJob)

Posted: Wed Nov 11, 2015 11:29 am
by Ronneberg
Code: Select all
chmod +x namedesscripts.sh
Setzt die Berechtigungen des Scripts auf Ausfüren (execute). Da du das script aber ausführen kannst, gehe ich davon aus, dass die nötigen Berechtigungrn gesetzt sind.

Re: TS3MusicBot restart (CronJob)

Posted: Wed Nov 11, 2015 1:50 pm
by knie
Erstmal danke für die Hilfe bzw. Denkanstoß ;)

Final läuft der Script inkl. crontab:
Code: Select all
#!/bin/sh

screen -p 0 -S musicbot1 -X quit

sleep 15

cd /home/musicbot/TS3MusicBot

echo "start musicbot1"
screen -dmS musicbot1 ./TS3MusicBot_runscript.sh -account EMAIL -port 8090 -webif-pw MASTERPW -webif-pw-user USERPW
Ist mit dem Beenden nicht ganz sauber, da der TS3Client "MusicBot" als TimeOut fliegt. Daher kommt der neue Client als "MusicBot1" neu ins TS.

Re: TS3MusicBot restart (CronJob)

Posted: Wed Nov 11, 2015 2:21 pm
by Crypto90
Kurze Ergänzung :)

Damit der TS3MusicBot durch Beenden des Screens sauber herunter gefahren wird, nutze anstatt:
Code: Select all
screen -p 0 -S musicbot1 -X quit
folgenden Befehl:
Code: Select all
screen -X -S musicbot1  quit
Somit wird der screen mit einem Sigterm Befehl beendet (worauf Programme wie auch der TS3MusicBot reagieren kann), anstatt mit einem Sigkill (was gnadenlos alles killt, ohne dem Prozess die Chance zum selbst beenden zu lassen).

Re: TS3MusicBot restart (CronJob)

Posted: Tue Jan 26, 2016 11:50 pm
by Shadow86
Da keine weitere Antwort darauf erfolgte, gehe ich davon aus, das nun alles soweit funktioniert und schließe dieses Thema - solltest du doch noch Fragen haben, erstelle einfach einen neuen Thread oder besuche uns auf unserem Support-TS3.

Liebe Grüße

Shadow86