per cron den server neustarten wenn er hängt... geht das so

Apache, Lighttpd, nginx, Cherokee
Post Reply
kiwikiwi
Posts: 65
Joined: 2003-08-17 09:06
 

per cron den server neustarten wenn er hängt... geht das so

Post by kiwikiwi »

Code: Select all

#!/bin/bash
if [ `ps -ef | grep -v "grep" | grep -c "httpd"` -gt 0 ]; then
  if [ `wget "http://www.domain.de/apachecheck/apachecheck.txt" --delete-after 2>&1 | grep -c "200 OK"` -eq 0 ]; then
    echo "apache has died...";
    killall mysqld-max;
    killall httpd;
    sleep 10;
    killall -9 mysqld-max;
    killall -9 httpd;
    rcmysql start;
    rcapache start;
    sendmail webmaster@domain.de < /check/apachecheck1.txt
  fi
else
  echo "apache dead..";
  rcapache start;
  sendmail webmaster@domain.de < /check/apachecheck2.txt
fi

geht das so oder habe ich was falsch gemacht
kiwikiwi
Posts: 65
Joined: 2003-08-17 09:06
 

Re: per cron den server neustarten wenn er hängt... geht das so

Post by kiwikiwi »

achso ich lasse das als cron laufen

aber darum geht es nicht... ich will nur wissen ob der code so richtig ist
lufthansen
Posts: 390
Joined: 2002-09-24 17:31
Location: NRW
 

Re: per cron den server neustarten wenn er hängt... geht das so

Post by lufthansen »

ich kann dir ehrlich gesagt nichts zu dem src sagen aber ich würde ehrlich gesagt erstmal gucken warum der abschmiert den das darf nicht sein ....
kiwikiwi
Posts: 65
Joined: 2003-08-17 09:06
 

Re: per cron den server neustarten wenn er hängt... geht das so

Post by kiwikiwi »

ne......

es geht nur für den fall der fälle...
mc5000
Posts: 308
Joined: 2004-06-17 11:56
Location: Köln
 

???

Post by mc5000 »

Warum willst Du mysql einfach killen?? Hast doch gar nicht geprüft ob der auch weg ist??

Willst du nicht vielleicht prüfen ob der Apache dann auch sauber gestartet ist?? Sonst versucht Du das bei jedem cron-turn von neuem und müllst Dir die Mailbox/Logfiles/usw. sinnlos voll (wenn der apache nicht startet) ?!

Aber ansonsten ....
flo
Posts: 2223
Joined: 2002-07-28 13:02
Location: Berlin
 

Re: per cron den server neustarten wenn er hängt... geht das so

Post by flo »

Das erste "kill" würde ich durch "rcapache stop" ersetzen, den mysql-Server in Ruhe lassen und gegebenenfalls die Systemlast miteinbeziehen.

Grüße,

flo.
distanzcheck
Posts: 531
Joined: 2003-01-09 08:58
Location: NRW
 

Re: per cron den server neustarten wenn er hängt... geht das so

Post by distanzcheck »

kann man da irgendwie festlegen wielange er auf antwort vom apache wartet ?

ist der code soweit richtig ?

Code: Select all

#!/bin/bash
if [ `ps -ef | grep -v "grep" | grep -c "httpd"` -gt 0 ]; then
if [ `wget "http://blablabla.de/" --delete-after 2>&1 | grep -c "200 OK"` -eq 1 ]; then echo "apache ok";
else
echo "apache has died...";
rcapache2 stop
sleep 10;
killall -9 httpd;
/usr/sbin/apache2 start;
/usr/sbin/sendmail webmaster@blablabla.de < /var/backup/test/apachecheck1.txt
fi
else
echo "apache dead..";
/usr/sbin/apache2 start;
/usr/sbin/sendmail webmaster@blablabla.de < /var/backup/test/apachecheck2.txt
fi
kenzo
Posts: 526
Joined: 2003-07-15 20:30
 

Re: per cron den server neustarten wenn er hängt... geht das so

Post by kenzo »

Wenn es nur um den Fall geht, dass Apache abschmieren könnte, kannst du das auch mit den daemontools machen. Dafür muss der Apache nur im Vordergrund laufen; für Apache 1 wäre das etwas wie

Code: Select all

/usr/sbin/apache -F
und für Apache2

Code: Select all

/usr/sbin/apache2 -D NO_DETACH
Mehr Infos gibt es unter http://cr.yp.to/daemontools.html.
Post Reply