dragonl
Goto Top

Batch Programm starten und nicht aufs Ende warten (funktioniert in PHP nicht) !?

Per Webinterface ausgeführte Batch-Datei soll einen TS-Server starten.

Hallo,

ich habe für mein Web-Server ein "Web-Interface" programmiert mit dem ich den Status der installierten Server (HTTP, FTP, SMTP, POP. TeamSpeak) abrufen und diese auch starten, stoppen und/oder restarten kann, aber der TS-Server macht mir Probleme !
Bei den andern Servern funktioniert alles wunderbar, aber den TS-Server bekomme ich per Webinterface einfach nicht zum laufen, stoppen und status-abruf funktionieren aber !?
Ich habe mit dazu folgende Batch-Datei geschrieben die im Webinterface mit der PHP-Funktion "exec()" aufgerufen wird.

tss_start.bat
@echo off & setlocal ENABLEDELAYEDEXPANSIONset status=offlinecd E:\Teamspeak2_RC2START server_windows.exefor /F "tokens=1-7" %%a in ('tasklist /v') do ( if "%%a"=="server_windows.exe" ( set status=online ) )echo %status%

Wenn ich die Batch per hand (doppelklick) ausführe, funktioniert es auch!
Aber wenn ich es per Webinterface versuche, dan läd der Browser erste 15min und bietet mir dan eine Datei zum download an (vom Typ:application/octet-stream)
Diese habe ich dann mal gespeichert und mit WordPad geöffnet:

mvhym0ja
<!DOCTYPE HTML PUBLIC "-IETFDTD HTML 2.0//EN"><html><head><title>500 Internal Server Error</title></head><body><h1>Internal Server Error</h1><p>The server encountered an internal error ormisconfiguration and was unable to completeyour request.</p><p>Please contact the server administrator, dragonl@freenet.de and inform them of the time the error occurred,and anything you might have done that may havecaused the error.</p><p>More information about this error may be availablein the server error log.</p><p>Additionally, a 500 Internal Server Errorerror was encountered while trying to use an ErrorDocument to handle the request.</p></body></html>

Ich habe keine Ahnung ob der Fehler jetzt im PHP-Script oder in der Batch ist, tendiere aber zur Batch weill der Rest (FTP,SMTP,...) ja funktioniert !

z.B: http_start.bat
@echo offset status=offlinecd E:\Apache2.2\bin\httpd.exe -k startfor /F "tokens=1-7" %%a in ('tasklist /v') do ( if "%%a"=="httpd.exe" set status=online )echo %status%

Noch ein paar Worte zu der "START"-Zeile in der tss_start.bat
Versuchen den TS-Server ähnlich wie den HTTP-Server ("Teamspeak2_RC2\server_windows.exe") zustarten:
per Webinterface: nach 15 minuten laden download des "500 Internal Server Error" (s.o.)
per Doppelklick: bleibt das DOS-Fenster geöffnet und wartet auf das Ende des Programms. Das Fenster kann aber geschloßen werden und der Server läuft weiter. Wird der Server (manuel) beendet, schließt sich auch das DOS-Fenster.

Versuche ich den Server mit "START server_windos.exe" zustarten:
per Webinterface: nach 15 minuten laden download des "500 Internal Server Error" (s.o.)
per Doppelklick: funktioniert es so wie es soll ! DOS-Fenster öffnet sich, startet den server und schließt sich wieder!

Ich weiss wirklich nicht mehr was ich machen kann um den TS-Server zustarten, Startparameter wie z.B. der Apache HTTP-Server hat der anscheinend nicht (keine gefunden).
Mir schwirt noch die möglichkeit im Kopf herum den TS-Server als Dienst anzumelden und den dann per "net start TS-Server" zustarten (o.ä.).
Befürchte aber dass das auch nicht geht weil der TS-Server keine Startparameter hat.

Hoffe, euch fällt noch was ein, oder ihr habt es selbst schon mal gebraucht und umgesetzt.

MfG
Dragonl

Content-ID: 40783

Url: https://administrator.de/forum/batch-programm-starten-und-nicht-aufs-ende-warten-funktioniert-in-php-nicht-40783.html

Ausgedruckt am: 22.12.2024 um 21:12 Uhr

ahe
ahe 14.10.2006 um 00:20:25 Uhr
Goto Top
Hallo,

ich hatte ein ähnliches Problem, allerdings lag dort das Problem nicht an der Batch, sondern an den nicht registrierten, vom Web-Server (IIS) freigegebenen Dateiendungen bzw. den MIME-Types.

Ich musste die Dateiendungen explizit aufnehmen, s. a. Deine Meldung application/octet-stream, die auf diesen Umstand hinweist...


mfg
Axel