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 update
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