Eine Serveranwendung oeffnen/schliessen?

Okey also ich habs jetzt so:
$OldDirectory = getcwd();
chdir("C:\Users\Securex3\Desktop\sampserver\Admin");
$last_line = exec('psexec -d samp-server.exe', $ausgabe, $exitcode_samp_server);
if( $exitcode_samp_server != 0 )
{
echo "Fehler! samp-server.exe konnte nicht gestartet werden!<br/>";
foreach( $ausgabe as $zeile )
{
echo "$zeile<br/>";
}
}
else
{
echo "samp-server.exe gestartet.<br/>";
}
chdir($OldDirectory);

Aber da steht konnte nicht gestartet werden
 
PHP:
	if(isset($_POST['home_serverstart'])) 
	{
		$OldDirectory = getcwd();
		chdir("C:\Users\Securex3\Desktop\sampserver\Admin");
		$last_line = exec('psexec -d samp-server.exe', $ausgabe, $exitcode_samp_server);
		if( $exitcode_samp_server != 0 )
		{
		  echo "Fehler! samp-server.exe konnte nicht gestartet werden!<br/>";
		  foreach( $ausgabe as $zeile )
		  {
			echo "$zeile<br/>";
		  }
		}
		else
		{
		  echo "samp-server.exe gestartet.<br/>";
		}
		chdir($OldDirectory);
	}
 
Ich hab mal gelesen, das psexec beim ersten Aufruf die sog. EULA anzeigt. Könntest du mal versuchen, das Kommando einfach an der cmd.exe aufzurufen? Sobald die EULA bestätigt wurde, ist dies aber nicht mehr notwendig, und dann könnte es auch mit PHP anständig funktionieren.
 
Das Problem wird sein, das exec auf den Output deines Kommando wartet und der exec Befehl nicht terminiert.
Versuch mal die Ausgabe einfach umzuleiten
Erzeuge ein Batchskript (z.B. batch.bat)mit folgenden Aufrufen
start /B samp-server.exe > serverlog.txt
echo "Server Gestartet"
Du kannst dir dann den Inhalt der Datei serverlog holen, wenn du die Informationen brauchst.
Hier http://chipmunkninja.com/Program-Execution-in-PHP:-exec-m@ werden die verschiedenen Möglichkeiten ausführlich diskutiert inklusive der shell_exec() Funktion.
 
Zurück