In meinem Webserver-Log hatte ich bis vor Kurzem ständig die folgende Fehlermeldung und diese Seite blieb beim Aufruf einfach weiß:
[Fri Aug 17 05:05:21 2007] [notice] child pid 22026 exit signal Segmentation fault (11) [Fri Aug 17 05:05:21 2007] [notice] child pid 30189 exit signal Segmentation fault (11) [Fri Aug 17 05:05:21 2007] [notice] child pid 13961 exit signal Segmentation fault (11)
Das lag wohl an irgendeinem fehlerhaften Modul (PHP5?) und ließ sich (jedenfalls bis jetzt) durch ein
apt-get upgrade
beheben. Leider weiß ich nicht, an welchem Modul es konkret lag. Ich hoffe einfach mal, dass die Fehlermeldung nicht wieder auftaucht.
Um dies zu überprüfen habe ich mir ein kleines Shell-Script geschrieben, das mein Apache2-Log regelmäßig (per Cronjob) auf die obige Meldung überprüft (ich weiß, es gibt für sowas auch Logwatch, aber das Einarbeiten in die Perl-Scripts etc. hat mir jetzt einfach zu lange gedauert). Das Script schreibt bei seinem Aufruf die aktuelle Zeit in /tmp/seglog.txt (um prüfen zu können, ob es wirklich ausgeführt wurde) und schickt, wenn es den Segmentation Fault erkennt, eine Mail an den Admin (also mich) und startet den Apache2 neu:
-
#!/bin/bash
-
SEG=`tail -n 20 /var/log/apache2/error.log|grep Segmentation`;
-
TIME=`date`;
-
echo $TIME >> /tmp/seglog.txt
-
if [ "$SEG" != "" ];
-
then
-
echo "To: MeineMailAdresse@DieseDomain.de" > /tmp/segmail.txt
-
echo "From: AbsenderAdresse@DieseDomain.de" >> /tmp/segmail.txt
-
echo "Subject: Apache2: Segmentation fault" >> /tmp/segmail.txt
-
echo $TIME >> /tmp/segmail.txt
-
/etc/init.d/apache2 restart >> /tmp/segmail.txt
-
echo `pidof apache2` >> /tmp/segmail.txt
-
echo "." >> /tmp/segmail.txt
-
sendmail MeineMailAdresse@DieseDomain.de < /tmp/segmail.txt
-
rm /tmp/segmail.txt
-
fi



