Deutsches Simutransforum

Normale Version: Simutrans-Server und Ausgabeumleitungen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Simutrans-Version:
Nightly 17. und 18.10. R3885 und R3890

PAK-Set (+zusätzliche PAK-Dateien):
pak.german

Betriebssystem:
Linux 64bit

Fehler (möglichst genaue Beschreibung):
Der Server (kompiliert ohne Grafik/Posix) bleibt bei benutzung von Ausgabeumleitungen in der Form
Code:
./sim >logfile.log 2>error.log &
vor dem Laden des Spielstandes bei der Meldung "World destroyed" hängen.
Der Prozeß an sich läuft weiter, der server ist aber (vermutlich wegen nicht geladener Karte) nicht ansprechbar.

Ohne Setzen der Ausgabeumleitung kommen nach "World destroyed" mit einiger Verzögerung noch
"Calculating textures" und "Running world pause =... fast forward =..." womit man dann auch verbinden kann.

Stellt sich natürlich die Frage warum denn die Umleitung sein muß. Wink
Wir versuchen für unseren Server ein Webinterface zum Starten/Stoppen des Programms zu kreieren bzw. haben das schon - dabei soll eben die Ausgabe des simutrans im Browser dargestellt werden was leider das gleiche Verhalten zeigt (auch dann wenn keine Umleitung im Script gesetzt wird - offenbar wird das Darstellen im Browser per CGI-Script auch als solche betrachtet bzw. verursacht das gleiche Verhalten).

CGI-Script läuft unter dem gleichen benutzer mit dem ich Simutrans auch manuell starte und hat auch ausreichende Rechte den Simutrans Prozeß zu stoppen (selbst wenn der nicht vom script gestartet wurde) sowie in den Spielverzeichnissen zu schreiben (Logfiles mit debug 1 zB).

Hier noch die Log-Ausgabe (-debug 3), letzte 5 Zeilen - danach tut sich nichts mehr beim starten über CGI bzw. mit gesetzter Umleitung; Prozeß bleibt aber aktiv
Code:
Message: pakset_info_t::debug:  Friedhof -> sha1 = 8E31170378629B3F43B8C6FEA98E4E41888111A0
Message: pakset_info_t::debug:  Cunnersdorf2 -> sha1 = 3221353CAD4DA4A10E2393DD5668EB9522244E3D
Message: pakset_info_t::debug:  AirStop -> sha1 = A09867F25CB1A4B05E50857AAC6E78EDA193EFF3
Message: pakset_info_t::debug:  ViaductRoad -> sha1 = 2ACE25C8D90EAE4776E3E4F5112354CF94CAA8FF
Warning: werkzeug_t::read_menu():       toolbar[13][3]: replaced way-builder(id=14) with default param=cityroad by cityroad builder(id=36)

Hier noch das CGI-Script:
Code:
#!/bin/bash
SIMSRV="../simuserver/simuserver.sh"

echo Content-type: text/plain
echo ""

case $1 in
  check)
        $SIMSRV --check ;;
  restart)
        $SIMSRV --restart ;;
  start)
        $SIMSRV --start ;;
  stop)
        $SIMSRV --stop ;;
esac

exit 0
Keine große Sache, das hie aufgerufene simuserver.sh läuft bei manuellem Aufruf aus der Shell problemlos (nachdem die dortigen Umleitungen entfernt wurden) verhält sich aber bei start durchs CGI noch immer so wie vorhin manuell mit Umleitungen.

Irgendwelche Vorschläge oder Ideen woran das liegen könnt? Rolleyes
Ok, dürfte doch etwas an den CGI-Einstellungen/Berechtigungen sein - hab nun das Skript soweit hingedeichselt, daß es bei Shell-Aufruf des CGI-Scripts läuft - bin zwar immer noch nich ganz sicher wozu man die () braucht aber gut. Big Grin
Simutrans schreibt eh das log nach "simu-server.log" sobald -log 1 gesetzt ist. Ich verstehe da nicht den Sinn der Ausgabeumleitung ...
Das Problem lag/liegt eh ganz woanders - meine CGI-Skrits laufen hier mit diesem suexec Wrapper und der ist nicht ganz einverstanden mit der Art und Weise wie simutrans seine Spieldatei schreibt und stoppt an der Stelle die Ausführung.

Nachdem ich das suexec nur einmal am server hab und das für alle VHosts läuft (config gibts keine, muß man neu kompilieren) kam eine Manipulation von dem Ding nicht in Frage als hab ich die Sache ganz anders angepackt... ich denk ich habs jetzt, noch paar Tests aber so grundsätzlich tut es nun was ich will - mit paar Vor- und Nachteilen zur ursprünglich angestrebten Variante. Wink