You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users-de@httpd.apache.org by Peter Poeml <po...@suse.de> on 2003/07/30 13:22:51 UTC

Re: Apache startet erst beim zweiten Versuch

Spaete Antwort, aber mit einer Erklaerung. 

On Mon, May 05, 2003 at 02:26:39PM +0200, Peter Poeml wrote:
> On Sun, Apr 27, 2003 at 01:17:48PM +0200, Detlef Strehlow wrote:
> > ich habe das Phänomen das Apache (1.3.27-38) beim booten 'failed'.
> > Alles ist neu installiert SuSE 8.2
> > Auch in allen anderen Programmen sind nirgendwo Fehler.
> > Starte ich ihn dann per Hand läuft er korrekt.
> > [SSL PHP]
> > Wenn ich PHP deaktiviere startet er korrekt.
> > 
> > In /var/log/httpd/error.log erscheint folgendes:
> > 
> > [Mon Apr 21 17:57:42 2003] [notice] Accept mutex: sysvsem (Default: 
> > sysvsem)
> > [Mon Apr 21 17:59:25 2003] [notice] caught SIGTERM, shutting down
> > 
> > Ansonsten sind in keinen logs irgendwelche Fehler erkennbar.
> > Wenn er dann läuft läuft er auch stabil.
> > 
> > Kann man es einstellen, dass beim Booten zweimal versucht wird Apache zu 
> > starten, weil er beim zweiten Versuch immer 100% startet.
> > Oder was würdet ihr mir empfehlen ?
> > Habe allerdings keine Erfahrung mit Module selbstkompilieren.
> > Auf einem Rechner mit identischer Hard- und Software habe ich das 
> > Problem nicht.

Wahrscheinlich ist eine nvidia-Grafikkarte mit zugehoerigen Treibern
installiert, d.h. der nvidia Installer ist gelaufen. Letzterer tauscht
die libGL aus, gegen die mod_php4 gelinkt ist. Mit der libGL von nvidia
schlaegt der Start des Apache beim Booten dann fehl. Folgende Aenderung
im Init-Skript bestaetigt die Theorie und dient zugleich als Workaround.

--- apache.init.orig    2003-07-29 16:28:25.000000000 +0200
+++ apache.init 2003-07-29 16:29:39.000000000 +0200
@@ -127,8 +127,8 @@
        check_modules yes ;
        echo -n "]"
        rm -f /var/lib/httpd/mod_bandwidth/link/* &>/dev/null
-       if $HTTPD_BIN $INET6 -t -f /etc/httpd/httpd.conf $MODULES > /var/log/httpd/rcapache.out 2>&1 ; then
-               startproc -t $HTTPD_START_TIMEOUT $HTTPD_BIN $INET6 -f /etc/httpd/httpd.conf $MODULES
+       if LD_PRELOAD=/usr/lib/GL/libGL.so.1.4.mesasoft $HTTPD_BIN $INET6 -t -f /etc/httpd/httpd.conf $MODULES > /var/log/httpd/rcapache.out 2>&1 ; then
+               LD_PRELOAD=/usr/lib/GL/libGL.so.1.4.mesasoft $HTTPD_BIN $INET6 -f /etc/httpd/httpd.conf $MODULES
                ret=$?

                if test -t 1 && stty -a | grep -q -- -echo\ ; then


Ein anderer Workaround waere ein cronjob der Apache startet falls er
nicht laeuft, oder Aehnliches. Nach dem Booten klappt's ja,
eventuell deshalb weil die libGL dann mit dem laufenden X-Server
kommunizieren kann. Beschwerden bitte an nvidia ;-)

Peter

-- 
Thought is limitation. Free your mind.