Ubuntu Server 12.04 - MineCraft Server: logfile wächst extrem zu schnell

ascer

Captain
Registriert
Juni 2008
Beiträge
3.703
Hallo Community,



folgendes Problem: ich habe einen VServer auf dem Ubuntu Server 12.04 läuft, hierauf habe ich vor kurzem einen Minecraft-Server (CraftBukkit 1.6.4) installiert. Das ganze hab ich per Upstart jetzt als Service laufen. Der Server an sich läuft auch wunderbar, man kann ohne Probleme drauf spielen, allerdings wird das logfile des Servers totgespammt.

So sieht die /etc/init/minecraft-server.conf aus:
Code:
start on runlevel [2345]
stop on runlevel [^2345]

console log
chdir /srv/minecraft/server1
setuid minecraft
setgid minecraft

respawn
respawn limit 20 5

exec java -Xms1024M -Xmx1536M -jar craftbukkit.jar --log-limit=10000

Der log-limit-Befehl wird anscheinend auch ignoriert.

Ärgerlich ist besonders, dass im logfile keine errors oder irgendwas anderes "sinnvolles" vorhanden ist.
Das logfile wird einfach mit "<" totgespammt, d.h. es stehen da tatsächlich Millionen Zeilen voll mit diesem Zeichen.

So sieht dann das logfile /var/log/upstart/minecraft-server.log aus:
Code:
<<<<<<<<<<<<<<<<<<<<<<<<...

Diese Zeichen werden auch konstant, solange der Server läuft, in das logfile geschrieben...somit generiert der Server da tatsächlich knapp 1 MB/s (!!) an Daten im logfile.

Woran kann das liegen?



Viele Grüße & Danke

ascer
 
Zuletzt bearbeitet:
Hab ich gerade mal probiert, hat keine Änderung bewirkt...logfile gelöscht, .conf geändert, server gestartet -> läuft jetzt wenige Sekunden und logfile ist schon wieder 52 MB groß :(
 
Hab zwar speziell damit nichts gemacht, aber von anderen Javaprogrammen kenne ich sowas vielleicht schon:
Hast du eine Log-Konfigdatei? Evtl. eine log4j.xml. Wie der Dateiname und das Format sein muss, weiß ich natürlich nicht.
 
Nicht das ich wüsste, wo sollte die sitzen?
 
Evtl. ist sie im jar file. Aber dann muss der Fehler woanders liegen.
 
Jetzt hab ich es, der Fehler lag tatsächlich an was ganz anderem, mein Upstart-Skript sieht jetzt so aus:

Code:
start on runlevel [2345]
stop on runlevel [^2345]

console log
chdir /srv/minecraft/server1
setuid root
setgid root

respawn
respawn limit 20 5

exec java -Xms1024M -Xmx1536M -jar craftbukkit.jar -o true --noconsole

Die Problematik war, dass die Konsole von Craftbukkit per default an ist, irgendwas hat ihr ständig was geschickt und die Konsole kannte das, was da per input-stream kam, natürlich nicht und hat immer nur "<" zurückgegeben, was in das logfile gepiped wurde als output von dem Craftbukkit. Ohne Konsole läuft es wunderbar :)
 
Du solltest vielleicht trotzdem einmal gucken, warum bzw. was da so viel Unbekanntes an Craftbukkit geschickt wird. Normal dürfte das jedenfalls nicht sein.

Auch wenn ich mich mit Upstart nicht so auskenne (bin selbst mir ArchLinux und damit systemd unterwegs), aber sehe ich das richtig, dass du deinen Minecraft Server als root, und damit auch mit dessen Rechten auf dem Ubuntu Server, startest?
Finger weg von root, wenn es nicht zwingend nötig ist. Für Alles was am System selbst nichts ändern braucht/darf nimmt man einen eigenen Nutzer mit eingeschränkten Rechten.

Vorschlag:
  • einen normalen Nutzer "minecraft" anlegen (der braucht kein /home)
  • diesen Nutzer als Besitzer von "/srv/minecraft/server1" eintragen (chown -R minecraft /srv/minecraft/server1)
  • abgesehen davon bekommt der keine weiteren Rechte oder Verzeichnisse zugewiesen
  • im Upstart Skript setuid entsprechend auf den Nutzer ändern und setgid weglassen. Das wird automatisch auf die primäre Gruppe des angegeben Nutzers gesetzt.
 
Vielen Dank für den Hinweis, hab ich gleich mal gemacht :)
 
Zurück
Oben