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:
Allerdings stimmen die Zeiten nicht mit der IdleTimeout Einstellung überein oO
Und gestartet wird der Server via nohup ( vereinfacht ):
- 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:
ps -aux | grep vu2011 vor dem Absturz
ps -aux | grep vu2011 nach dem Absturz
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
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:
[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:
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:
[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:
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:
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