1Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
437
437
EMPFEHLEN
-
Hey,
Ich bin derzeit an einem Teeworlds Server Webinterface.
Eigentlich bin ich auch schon fertig und wollte das ganze Veröffentlichen ( TWSM ) aber seit ich das ganze jetzt produktiv einsetzen wollte ( keine nur kurzen Test-Server ) habe ich persönlich ( komischerweise noch keiner meiner Tester oO ) ein Problem;
Nach einiger Zeit ( noch keine Regelmäßigkeit festgestellt oO ) stürzen die Server immer ab - entweder alle - oder einzelne, meistens alle in mehreren Etappen ( erst ein Paar dann die anderen ).
Es liegt aber nicht am Game - läuft von Hand gestartet perfekt - oder am vServer ( ispCP Omega 1.03 - Apache2, PHP5, FastCGI ).
In /var/log/apache2/users/*-error.log steht dann nach dem Absturz:
Code :1
[DATUM] [notice] mod_fcgid: process /var/www/virtual/*/htdocs/index.php(*12612*) exit(idle timeout), terminated by calling exit(), return code: 0
Allerdings stimmen die Zeiten nicht mit der IdleTimeout Einstellung überein oO
Und gestartet wird der Server via nohup ( vereinfacht ):
Code :1
shell_exec('nohup SERVER_DATEI -f CONFIG_DATEI.cfg > LOG_DATEI & echo $!');
- Sollte doch so eigentlich unabhängig vom WebServer laufen oder?
Sollte ich es vlt. eher mit http://de.php.net/ssh2 versuchen?
Wobei das auch nicht so toll ist mit den Passwörtern die übermittelt werden, dem User den man extra anlegen sollte etc. ...
Nebenbei;
Da mir in einem anderen Forum geraten wurde doch mal exec() anstatt shell_exec() zu probieren - es läuft beides wie vermutet aufs selbe raus
Habe auch schon etliche andere Sachen ausprobiert wie z.B.:
- shell_exec('(../'.$server.' -d ../ -f ../'.$config.' > /dev/null & echo $!)');
- befehl mit escapeshellcmd() maskiert
- shell_exec('nohup SERVER_DATEI -f CONFIG_DATEI.cfg > LOG_DATEI 2> ERROR_DATEI & echo $!');
...
Auszug aus error.log nach dem letzten Absturz:
Code :1 2 3 4 5 6 7 8
[Mon Mar 15 17:10:50 2010] [notice] mod_fcgid: process /var/www/virtual/twsm.matthis-brugger.de/htdocs/index.php(24142) exit(idle timeout), terminated by calling exit(), return code: 0 [Mon Mar 15 17:10:50 2010] [notice] mod_fcgid: process /var/www/virtual/twsm.matthis-brugger.de/htdocs/index.php(24355) exit(idle timeout), terminated by calling exit(), return code: 0 [Mon Mar 15 17:10:50 2010] [notice] mod_fcgid: process /var/www/virtual/twsm.matthis-brugger.de/htdocs/index.php(24194) exit(idle timeout), terminated by calling exit(), return code: 0 [Mon Mar 15 17:14:56 2010] [notice] mod_fcgid: process /var/www/virtual/twsm.matthis-brugger.de/htdocs/index.php(24437) exit(idle timeout), terminated by calling exit(), return code: 0 [Mon Mar 15 17:14:56 2010] [notice] mod_fcgid: process /var/www/virtual/twsm.matthis-brugger.de/htdocs/index.php(24127) exit(lifetime expired), terminated by calling exit(), return code: 0 [Mon Mar 15 17:14:56 2010] [notice] mod_fcgid: process /var/www/virtual/twsm.matthis-brugger.de/htdocs/index.php(24136) exit(lifetime expired), terminated by calling exit(), return code: 0 [Mon Mar 15 17:14:56 2010] [notice] mod_fcgid: process /var/www/virtual/twsm.matthis-brugger.de/htdocs/index.php(21165) exit(lifetime expired), terminated by calling exit(), return code: 0 [Mon Mar 15 17:14:56 2010] [notice] mod_fcgid: process /var/www/virtual/twsm.matthis-brugger.de/htdocs/index.php(24431) exit(lifetime expired), terminated by calling exit(), return code: 0
ps -aux | grep vu2011 vor dem Absturz
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
vu2011 21165 [...] 16:58 0:00 /usr/bin/php5-cgi vu2011 21166 [...] 16:58 0:00 /usr/bin/php5-cgi vu2011 21167 [...] 16:58 0:00 /usr/bin/php5-cgi vu2011 24120 [...] 16:59 0:00 ../server_files/modpack_x86 -d ../ -f ../configs/b9005b519bfb0f05d1ee6e9d22f99ccf.cfg vu2011 24127 [...] 16:59 0:00 /usr/bin/php5-cgi vu2011 24131 [...] 16:59 0:00 /usr/bin/php5-cgi vu2011 24132 [...] 16:59 0:00 /usr/bin/php5-cgi vu2011 24136 [...] 16:59 0:00 /usr/bin/php5-cgi vu2011 24137 [...] 16:59 0:00 /usr/bin/php5-cgi vu2011 24138 [...] 16:59 0:00 /usr/bin/php5-cgi vu2011 24142 [...] 16:59 0:00 /usr/bin/php5-cgi vu2011 24143 [...] 16:59 0:00 /usr/bin/php5-cgi vu2011 24144 [...] 16:59 0:00 /usr/bin/php5-cgi vu2011 24194 [...] 16:59 0:00 /usr/bin/php5-cgi vu2011 24219 [...] 16:59 0:00 /usr/bin/php5-cgi vu2011 24220 [...] 16:59 0:00 /usr/bin/php5-cgi vu2011 24355 [...] 16:59 0:00 /usr/bin/php5-cgi vu2011 24360 [...] 16:59 0:00 /usr/bin/php5-cgi vu2011 24361 [...] 16:59 0:00 /usr/bin/php5-cgi vu2011 24425 [...] 16:59 0:00 ../server_files/modpack_x86 -d ../ -f ../configs/4b26c9df579e0b3cba54136523ef6d42.cfg vu2011 24431 [...] 16:59 0:00 /usr/bin/php5-cgi vu2011 24432 [...] 16:59 0:00 /usr/bin/php5-cgi vu2011 24433 [...] 16:59 0:00 /usr/bin/php5-cgi vu2011 24437 [...] 16:59 0:00 /usr/bin/php5-cgi vu2011 24439 [...] 16:59 0:00 /usr/bin/php5-cgi vu2011 24440 [...] 16:59 0:00 /usr/bin/php5-cgi vu2011 24449 [...] 16:59 0:00 ../server_files/modpack_x86 -d ../ -f ../configs/bbc52ca51cd33725179c68a44500a7ac.cfg vu2011 24465 [...] 16:59 0:00 ../server_files/modpack_x86 -d ../ -f ../configs/df2622f5293dca06d98d7a96dd869802.cfg vu2011 24479 [...] 16:59 0:00 ../server_files/modpack_x86 -d ../ -f ../configs/9f12f0cd2df2089ddce0467115f9661a.cfg vu2011 24494 [...] 16:59 0:00 ../server_files/modpack_x86 -d ../ -f ../configs/8d91534e02af410ebfb088034ca2ae69.cfg vu2011 24509 [...] 16:59 0:00 ../server_files/modpack_x86 -d ../ -f ../configs/308bc225df8fb97015d8bc5e92738a46.cfg vu2011 24527 [...] 16:59 0:00 ../server_files/modpack_x86 -d ../ -f ../configs/3c0ff2cda6ef3f4ba869eeb3275e2efd.cfg vu2011 24543 [...] 16:59 0:00 ../server_files/modpack_x86 -d ../ -f ../configs/74623ef450b488e286ab88d132aab325.cfg
ps -aux | grep vu2011 nach dem Absturz
Code :1 2 3
vu2011 19596 [...] 17:16 0:00 /usr/bin/php5-cgi vu2011 [...] 17:16 0:00 /usr/bin/php5-cgi vu2011 [...] 17:16 0:00 /usr/bin/php5-cgi
Ausserdem stürzen die Server auch ab wenn Apache gestoppt / neugestartet wird - sollten doch aber eigenständige Prozesse sein ... ='(
=> Zentrale Frage; wie kann ich den Prozess aus PHP heraus starten, ohne dass dieser an den PHP-Prozess gebunden ist?
Hoffe hier kann mir jemand helfen =]
Gruß Matthis
-
Hallo Matt,
du könntest den Timeout für php-cli Ausführungen einfach auf 0 setzen und das Script über das cli-Binary aufrufen und schauen, ob der Fehler dann noch immer auftaucht. Außerdem solltest du die Ausgabe mal in /dev/null pipen und den Prozess nach dem Start in den Hintergrund verschieben (&).
Ich weiß nicht ob es funktioniert, war nur der erste Gedanke, als ich deine Frage gelesen habe. Du kannst es mal ausprobieren und das Ergebnis mitteilen.
Beste Grüße aus Berlin.Lösungsvorschlag:
Wenn es mit dem mysql_query(...); Probleme gibt, pack ein die(mysql_error()); dahinter und guck dir den MySQL-Fehler an!
-
Soweit ich mich errinere erreicht man mit pcntl unabhängige prozesse. Zentraler funkt is die pcntl_fork() funktion. Diese Prozesse kann man auch relativ einfach überwachen und terminieren.
Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.
-
Danke für eure Antworten, haben aber leider nichts genutzt =(
@Mircohome:
Habe mal alle Timeouts auf 0 gesetzt und apache neu gestartet, hat leider nichts gebracht =/
Und rufe den Befehl ja schon mit einem & auf um ihn in den Hintergrund zu verschieben ( kompletter Befehl steht oben im ersten Beitrag ).
@Michael:
Also mit den Beispielen die ich auf php.net und bei google gefunden habe gings leider auch nicht -.-
-
Also nach einigem Ausprobieren und über einen kleinen Umweg läuft das jetzt wohl doch mit den pcntl_* Funktionen - danke Michael! =]
( läuft zumindest schon ein Paar Tage am Stück )
Ähnliche Themen
-
Prozess Snapshot erstellen, Prozess abschießen, Prozess neustarten
Von Marius Heil im Forum Coders TalkAntworten: 2Letzter Beitrag: 28.09.10, 02:43 -
Ergebnis von FTP Prozess? und: Prüfen ob spezieller Prozess läuft
Von XtremeCJ im Forum .NET CaféAntworten: 1Letzter Beitrag: 07.10.09, 19:53 -
shell_exec() bricht ab
Von Passer im Forum Linux & UnixAntworten: 2Letzter Beitrag: 19.06.09, 00:12 -
shell_exec o.a.: Prozess im Hintergrund/raus starten
Von mr b im Forum PHPAntworten: 0Letzter Beitrag: 10.12.07, 07:38 -
shell_exec und Rückgabewert
Von kevkev im Forum PHPAntworten: 2Letzter Beitrag: 04.11.06, 12:39





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren