JTS3ServerMod Startskript

Started by markusmarkusz, April 14, 2016, 04:29:21 PM

Previous topic - Next topic

markusmarkusz

Wenn man per Cronjob den Bot über das Skript automatisch neustarten lassen will, funktioniert dies nicht.
Das kommt daher, dass im Skript festgelegt ist, dass die jts3servermod.pid im selben Verzeichnis wie das Skript liegt.
Das ist ein bisschen unpraktisch, dass dies nicht allgemein festgelegt ist, wg. Cron.
Wird dies irgendwann geändert, oder soll ich einfach das selbstständig umstellen / beheben?

Stefan1200

Die PID wird im JTS3ServerMod Verzeichnis angelegt. Es wird doch relativ weiter oben mit CD in das JTS3ServerMod Verzeichnis gewechselt. Du musst nur den Pfad oben eintragen, wenn das Skript verschoben wird.

markusmarkusz

Ich habe mit den kompletten Pfad angegeben.
Ich bin danach mal in das Root Verzeichnis gegangen, habe das Skript mit Pfad versucht zu nutzen.
Also halt mit /pfad/zum/skript/jts3servermod_startscript.sh status
Das Resultat:
root@root:/home/query# /home/query/jts3servermod_startscript.sh status
JTS3ServerMod is running!
root@root:/home/query# cd
root@root:~# /home/query/jts3servermod_startscript.sh status
No JTS3ServerMod running (jts3servermod.pid is missing)!

Deswegen ist halt der Cronjob auch gescheitert.

Stefan1200

Das schaue ich mir nochmal genauer an, danke dir für den Hinweis.

Stefan1200

Hum, das Skript jts3servermod_startscript.sh funktioniert genauso wie es soll, die jts3servermod.pid wird immer im JTS3ServerMod Verzeichnis angelegt, auch wenn das Skript woanders liegt.

Bist du sicher, das du im Skript den Wert bei BINARYPATH in Zeile 8 korrekt gesetzt hast?

Bei mir in meiner Testumgebung habe ich das Skript testweise nach/var/tmp verschoben und die Zeile 8 geändert in:
BINARYPATH="/root/JTS3ServerMod"

Und sowohl status und start haben sauber bei mir funktioniert (und die pid liegt in /root/JTS3ServerMod).

Wenn man es natürlich auf $(pwd) belässt, dann muss man sich vorher selbst im JTS3ServerMod Ordner befunden haben, sonst klappt es natürlich nicht.

markusmarkusz

Ja gut.
Den Pfad sollte man vielleicht wirklich im Skript dann genau angeben xD.
Blödes Debian :C.
Dann wäre das erledigt und ich werde den Pfad angeben.

Warum timen eigentlich die Bots so oft aus?
Die sind auf der Query Whitelist und sind auch nicht gebannt.
Die können sofort wieder connecten. Zumindest wenn ich sie per Hand restarte :3.
Soll ich dafür ggf. einen eigenen Thread erstellen?

Stefan1200

Quote from: markusmarkusz on April 15, 2016, 01:59:46 PM
Warum timen eigentlich die Bots so oft aus?
Die sind auf der Query Whitelist und sind auch nicht gebannt.
Die können sofort wieder connecten. Zumindest wenn ich sie per Hand restarte :3.
Soll ich dafür ggf. einen eigenen Thread erstellen?

Bitte ein eigenes Thema mit Logdateien. So kann ich nur raten. :)

markusmarkusz

Wäre es nicht besser, wenn man das Verzeichnis des Bots nicht wie folgt aufruft:
BINARYPATH="$(pwd)"
cd "${BINARYPATH}"


Sondern so aufruft:
D1=$(readlink -f "$0")
BINARYPATH="$(dirname "${D1}")"
cd "${BINARYPATH}"


Der untere Code stammt von dem Startskript von TeamSpeak 3.
Mit dem Code könnte man das Skript dann auch ohne Änderungen ausführen. Egal in welchem Verzeichnis man sich befindet.

Stefan1200

Naja, das erfordert aber, dass das Skript in dem JTS3ServerMod Verzeichnis liegen muss. So brauch man einfach nur den BINARYPATH ändern, und kann das Skript ablegen, wo man will.

Letztendlich kann jeder mit dem Skript machen können, was er will. Das Skript habe ich nur geschrieben, weil ich mal Bock darauf hatte, ein SH Skript zu schreiben. Zu meinen Aufgaben gehört das nicht. ;)

markusmarkusz

Ich füge das jetzt einfach mal diesem Thread an:

Wenn man den Bot mit ./jts3servermod_startscript.sh restart restartet, kommt im Instanz-Log eine Meldung, dass die lock-Datei von der Config noch vorhanden ist. Die wird nicht entfernt. Meines Wissens, bin mir aber nicht sicher, wird die auch beim Stoppen nicht entfernt.
Ist nicht so wichtig und ich glaube auch eher, dass der Fehlrr vom Bot kommt, aber ich wollte es mal nur erwähnen.

Stefan1200

Quote from: markusmarkusz on May 27, 2016, 12:36:20 PM
Wenn man den Bot mit ./jts3servermod_startscript.sh restart restartet, kommt im Instanz-Log eine Meldung, dass die lock-Datei von der Config noch vorhanden ist. Die wird nicht entfernt. Meines Wissens, bin mir aber nicht sicher, wird die auch beim Stoppen nicht entfernt.

Prüfe mal bitte, ob der Benutzer, der den JTS3ServerMod startet, überhaupt die Datei löschen darf. Nicht das die Dateiberechtigungen zum Löschen fehlen.

markusmarkusz

Ich nutze den Root User.
Der sollte die Rechte haben ^^.

Stefan1200

Ok, ich habe es mal auf meine ToDo Liste gepackt, das demnächst mal zu überprüfen. Da es aber nur eine Kleinigkeit ist, hat es keine sehr hohe Priorität.