Den Webserver automatisch neu starten wenn er "hängt&am

Apache, Lighttpd, nginx, Cherokee
distanzcheck
Posts: 531
Joined: 2003-01-09 08:58
Location: NRW
 

Den Webserver automatisch neu starten wenn er "hängt&am

Post by distanzcheck »

Hab das Den Webserver automatisch neu starten wenn er "hängt" von
http://www.netsecond.net/howto/index.ph ... 26&lang=de
installiert.

Wenn ich das script starte kommt diese fehlermeldung

Code: Select all

bash: ./apachecheck: bad interpreter: No such file or directory
hier die apachecheck

Code: Select all

#!/bin/bash
if [ `ps -ef | grep -v "grep" | grep -c "httpd"` -gt 0 ]; then
  if [ `wget "http://www.++++++++++.de/test"
--delete-after 2>&1 | grep -c "200
OK"` -eq 0 ]; then
    echo "apache has died...";
    killall httpd
    sleep 10;
    killall -9 httpd;
    rcapache start;
    sendmail webmaster@++++++++++++.de </check/apachecheck1.txt
  fi
else
  echo "apache dead..";
  rcapache start;
  sendmail webmaster@+++++++++++++.de </check/apachecheck2.txt
fi
die apachecheck1.txt und *2.txt liegen in oben angegebenen verzeichniss

Jemand eine idee was da falsch ist ?

Dirk
Last edited by distanzcheck on 2004-02-22 09:27, edited 1 time in total.
flo
Posts: 2223
Joined: 2002-07-28 13:02
Location: Berlin
 

Re: Den Webserver automatisch neu starten wenn er "hängt&am

Post by flo »

hast Du die erste Leerzeile auhc im Script? Stimmen die Zeilenumbrüche? Gibt es /bin/bash ?

flo.
Outlaw
Posts: 1500
Joined: 2002-12-04 10:22
Location: 4. Server von rechts, 2. Reihe von oben
 

Re: Den Webserver automatisch neu starten wenn er "hängt&am

Post by Outlaw »

Er sucht nicht die TXT Dateien, also liegt es nicht an dem Inhalt der Datei. Ich vermute eher, Du hast der Datei selbst nicht ausführbar gemacht, im MC muss sie mit einem * gekennzeichnet sein.

Gruß Outi
distanzcheck
Posts: 531
Joined: 2003-01-09 08:58
Location: NRW
 

Re: Den Webserver automatisch neu starten wenn er "hängt&am

Post by distanzcheck »

ist mit einem * markiert

und /bin/bash ist auch da


Dirk
Last edited by distanzcheck on 2003-12-19 16:24, edited 1 time in total.
chrisu
Posts: 54
Joined: 2003-10-22 22:45
 

Re: Den Webserver automatisch neu starten wenn er "hängt&am

Post by chrisu »

Habe auch ein Problem mit dem obigen Script.
Ansich scheint es zu laufen, doch bekomme ich bei jedem manuellen Aufruf die nachfolgende Ausgabe, dass der Apache abgestürzt sei, obwohl er läuft:

Code: Select all

meinserver:/# /etc/apachecheck
--16:13:40--  http://www.meinserver.de/apachecheck/
           => `index.html'
Resolving www.meinserver.de... done.
Connecting to www.meinserver.de[213.146.172.20]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 54 [text/html]

100%[====================================>] 54            52.73K/s    ETA 00:00

16:13:40 (52.73 KB/s) - `index.html' saved [54/54]

apache has died...
httpd: no process killed
httpd: no process killed
Starting web server: apache.
meinserver:/#
Hat irgendjemand eine Idee.

P.S. Ist ein Debian-System

Chris
chrisu
Posts: 54
Joined: 2003-10-22 22:45
 

Re: Den Webserver automatisch neu starten wenn er "hängt&am

Post by chrisu »

Hat sich erledigt.
Nachdem ich

Code: Select all

  if [ `wget "http://www.cswc.de/apachecheck/" --delete-after 2>&1 | grep -c "200 OK"` -eq 0 ]; then
in EINE Zeile geschrieben habe, läuft alles prima.

Ich würde gerne die Aufrufe in einer Datei protokollieren auch die erfolgreichen.
Könnte mir dazu jemand einen Tip geben??

DANKE!!!

Chris
chrisu
Posts: 54
Joined: 2003-10-22 22:45
 

Re: Den Webserver automatisch neu starten wenn er "hängt&am

Post by chrisu »

Soory, gleich noch eine Frage :oops:

Sind beide Aufrufe notwendig:

Code: Select all

killall httpd
und

Code: Select all

killall -9 httpd;
und warum hat der erste kein Semikolon am Ende??

Hoffe diese Basics nerven nicht allzusehr und zur Sicherheit, ich habe nachgelesen, es aber nicht verstenden.

Chris
alexander newald
Posts: 1117
Joined: 2002-09-27 00:54
Location: Hannover
Contact:
 

Re: Den Webserver automatisch neu starten wenn er "hängt&am

Post by alexander newald »

Ã?brigens sollte man, wenn man öffter den Indianer mit -9 killed, ab und zu folgendes Script laufen lassen:

Code: Select all

#!/usr/bin/perl


$tmp = `/usr/bin/ipcs -s`;
@tmp = split(/n/,$tmp);

foreach $tmp (@tmp) {
        $semid = (split(/ /,$tmp))[1];
        $test = $semid;
        $test =~ s/[^0-9]{1,}//g;
        if (($test eq $semid) and $semid) {
                print "$semid";
                $pmt = `/usr/bin/ipcs -s -i $semid`;
                foreach $line (split(/n/,$pmt)) {
                        $enil = $line;
                        $enil =~ s/[t ]{1,}/ /g;
                        }
                $pid = (split(/ /,$enil))[4];
                if ($pid) {
                        print " => t $pid";
                        if (!-e "/proc/$pid") {
                                print "t can be deletedn";
                                system("/usr/bin/ipcrm sem $semid");
                                } else {
                                print "t usedn";
                                }
                        }
                }
        }
distanzcheck
Posts: 531
Joined: 2003-01-09 08:58
Location: NRW
 

Re: Den Webserver automatisch neu starten wenn er "hängt&am

Post by distanzcheck »

bei mir hat das nichts gebracht

???

Dirk
chrisu
Posts: 54
Joined: 2003-10-22 22:45
 

Re: Den Webserver automatisch neu starten wenn er "hängt&am

Post by chrisu »

Alexander Newald wrote:Ã?brigens sollte man, wenn man öffter den Indianer mit -9 killed, ab und zu folgendes Script laufen lassen:

Code: Select all

#!/usr/bin/perl

...

Kommt mir irgendwie bekannt vor :-)
Was macht das Script??

Ich nutze das andere von Dir:

Code: Select all

#!/usr/bin/perl
print "Cleanup apache...";
system("/etc/init.d/apache stop");
sleep 2;
system("killall -9 httpd");
sleep 1;
$tmp = `/usr/bin/ipcs -s | grep wwwrun`;
@tmp= split(/n/,$tmp);
foreach $tmp (@tmp)
        {
        $tmp =~ s/[	]{1,}/ /g;
        $pid = (split(/ /,$tmp))[1];
        system("/usr/bin/ipcrm sem $pid");
        }
system("/etc/init.d/apache start");
Könnte man die beiden nicht kombinieren??

Chris
Outlaw
Posts: 1500
Joined: 2002-12-04 10:22
Location: 4. Server von rechts, 2. Reihe von oben
 

Re: Den Webserver automatisch neu starten wenn er "hängt&am

Post by Outlaw »

Ich selbst nutze das im HowTo genannte Skript gar nicht merh, da main Apache inzwischen dermassen abstürzt, das selbst dieses Skript hängen bleibt. Ich habe bei mir einen Zwangsreset mit Alex´s Skript in Kombination gebaut, der jede Stunde durchgeführt wird.

Alex´s Skript gibt die Resourcen wieder frei, die ein gekillter Apache im System hinterlässt. Wenn man nämlich den Apachen zich mal neu startet, blockiert der komplette Server irgendwann. Auch ein Apache restart über den normalen Befehl hinterlässt im System Spuren, die irgendwann blokieren ....

Gruß Outi
Outlaw
Posts: 1500
Joined: 2002-12-04 10:22
Location: 4. Server von rechts, 2. Reihe von oben
 

Re: Den Webserver automatisch neu starten wenn er "hängt&am

Post by Outlaw »

So, ich habe im HowTo die Zeile zusammengebaut, leider trennt die FAQ Software die Zeile trotzdem wieder.

Ã?rsprünglich (ich hatte den Text original übernommen) war das auch eine Zeile (das erkennt man normalerweise an den Zeilen, die nicht den vorhergehenden Einrückungen folgen, sondern plötzlich ganz vorne stehen, also eigentlich hinter die letzte Zeile gehören), jedoch wurde diese umgebrochen und würde auch funktionieren, wenn beim copy/paste nicht immer diese Leerzeihen hinten angehängt werden würden.

Daher bitte immer nach dem paste checken, ob unerwünschte Leerzeichen dahinter sind.
chrisu
Posts: 54
Joined: 2003-10-22 22:45
 

Re: Den Webserver automatisch neu starten wenn er "hängt&am

Post by chrisu »

Bei mir wird auch jede Nacht um 0:03
Alexanders Skript ausgeführt:

Code: Select all

#!/usr/bin/perl 
print "Cleanup apache..."; 
system("/etc/init.d/apache stop"); 
sleep 2; 
system("killall -9 httpd"); 
sleep 1; 
$tmp = `/usr/bin/ipcs -s | grep wwwrun`; 
@tmp= split(/n/,$tmp); 
foreach $tmp (@tmp) 
        { 
        $tmp =~ s/[   ]{1,}/ /g; 
        $pid = (split(/ /,$tmp))[1]; 
        system("/usr/bin/ipcrm sem $pid"); 
        } 
system("/etc/init.d/apache start");

Bei mir es auch definitiv logrotate, wenn es Probleme gibt (da immer 23:59).
Seit ich aber eine "restart statt reload" im logrotate-Skript angegeben habe, läuft alles.

Trotzdem ist mir MIT dem Script wohler ;-)

Was macht den das umfangreichere, welches er weiter oben gepostet hat genau? Auch im Vergleich zum in diesem Posting angegebenen?
Outlaw
Posts: 1500
Joined: 2002-12-04 10:22
Location: 4. Server von rechts, 2. Reihe von oben
 

Re: Den Webserver automatisch neu starten wenn er "hängt&am

Post by Outlaw »

So, ich habe im HowTo die Zeile zusammengebaut, leider trennt die FAQ Software die Zeile trotzdem wieder.

Ã?rsprünglich (ich hatte den Text original übernommen) war das auch eine Zeile (das erkennt man normalerweise an den Zeilen, die nicht den vorhergehenden Einrückungen folgen, sondern plötzlich ganz vorne stehen, also eigentlich hinter die letzte Zeile gehören), jedoch wurde diese umgebrochen und würde auch funktionieren, wenn beim copy/paste nicht immer diese Leerzeichen hinten angehängt werden würden.

Daher bitte immer nach dem paste checken, ob unerwünschte Leerzeichen dahinter sind.
breaker
Posts: 5
Joined: 2003-12-21 15:11
 

Re: Den Webserver automatisch neu starten wenn er "hängt&am

Post by breaker »

hmm, hab das script bei mir aufgerufen. er bringt als fehlermeldung

Code: Select all

etc/cron.hourly/apachecheck: line 16: syntax error near unexpected token 'fi'
etc/cron.hourly/apachecheck: line 16: 'fi'
was da der fehler?
Outlaw
Posts: 1500
Joined: 2002-12-04 10:22
Location: 4. Server von rechts, 2. Reihe von oben
 

Re: Den Webserver automatisch neu starten wenn er "hängt&am

Post by Outlaw »

Poste mal hier Deine Datei, da man manchmal kleine Fehler beim Kopieren oder anpassen drin hat, die man so nicht sieht, da ja das originale Skript funktioniert.

Gruß Outi
oxygen
Posts: 2138
Joined: 2002-12-15 00:10
Location: Bergheim
 

Re: Den Webserver automatisch neu starten wenn er "hängt&am

Post by oxygen »

Hm also wenn ich mir das so durch schaue, ist das meiner Ansicht nach der falsche Ansatzpunkt. Wenn der Apache abstürzt sollte man da den Fehler finden und korrigieren und nicht irgendwelche frickellösungen bauen. Ich hatte schon Apaches Monate lange ohne Fehler laufen (sowohl 1.3 als auch 2) und sowas hab ich noch nie gebraucht.
Outlaw
Posts: 1500
Joined: 2002-12-04 10:22
Location: 4. Server von rechts, 2. Reihe von oben
 

Re: Den Webserver automatisch neu starten wenn er "hängt&am

Post by Outlaw »

Da stimme ich Dir zu nur habe ich bisher alles hier im Forum erwähnte ausprobiert und das Problem besteht immer noch. Ich bin es inzwischen leid, den Server (besser Apache) noch weitere Downzeiten zuzumuten und habe jetzt ne Hardcore-1h-Apacheresetüberkilllösung am laufen, damit wenigstens der Ausfall nie länger als 1h dauert und bisher kann ich damit ganz gut leben, da der Killrestart mit anschliessender Resourcenaufräumung sehr schnell und kaum merklich über die Bühne geht.

Ich werde im neuen Jahr den Apache generell updaten und auch einige andere Punkte aktualisieren, bis dahin muss der indianer noch so laufen.

Mein alter auf SuSE 7.2 Server aufbauende Apache nach dem FAQ hier lief auch fast 1 Jahr ohne einen einzigen Restart durch.

Nun habe ich SuSE 8.2 am rennen und mit PHP 4.3.3 egal wie installiert läuft kaum, mit den normalen RPMs, die im 8.2er SuSE drin waren, geht es so weit. Ich habe zwar diese Hänger nur noch aller 3 bis 4 Tage aber ich kann nicht permanent den Rechner beobachten und die Checkroutine, um die es hier Anfänglich ging, funzt bei mir nicht mehr, die hängt sich ebenfalls auf ....

Am besten wäre ein selbstkompilierter Apache 1.3.28 mit aktuellem PHP und Co., so wie damals der 1.3.27er hier aus dem Forum. Leider bin ich da noch nicht so fit und auf die RPMs angewiesen, vielleicht können wir ja gemeinsam das Teil aktualisieren ....

Das Problem scheint generell bei den Images von 1&1 mit SuSE 8.1 aufzutreten, ich habe schon sehr viel hier darüber gelesen (Problem ja, Lösung noch nicht direkt, zumindest bei mir).

Auch mit SuSE 8.2 besteht es weiterhin, ist schon seltsam ....

Nunja, ansich spricht trotzdem nix gegen einen Check, denn wenn das Teil mal ausfällt, erhält man wenigstens Nachricht und gekoppelt mit SMS Benachrichtigung is das schon ne feine Sache.

Gruß Outi
oxygen
Posts: 2138
Joined: 2002-12-15 00:10
Location: Bergheim
 

Re: Den Webserver automatisch neu starten wenn er "hängt&am

Post by oxygen »

Outlaw wrote: Das Problem scheint generell bei den Images von 1&1 mit SuSE 8.1 aufzutreten, ich habe schon sehr viel hier darüber gelesen (Problem ja, Lösung noch nicht direkt, zumindest bei mir).
Hast du schon mal die Apache2 RPMs von SuSE probiert? Ich habe ein umgebautes (wegen SuExec) davon auf einem SuSE 8.1 Rooti in Verbindung mit selbstgebauten PHP 4.3.4 laufen, ohne Probleme. Sogar Confixx tuts ;) den Stuff gibts hier, sogar ein php rpm.
ftp://ftp.suse.com/pub/projects/apache/
chrisu
Posts: 54
Joined: 2003-10-22 22:45
 

Re: Den Webserver automatisch neu starten wenn er "hängt&am

Post by chrisu »

Die Zeilen

Code: Select all

if [ `wget "http://www.breaker-net.de/test/"
 --delete-after 2>&1 | grep -c "200 OK"` -eq 0 ]; then
müssen eine Zeile sein.
Versuch mal nach dem letzten "fi" einen Zeilenumbruch ohne Leerzeichen nach dem "fi".
So funktioniert er bei mir.

Chris
Outlaw
Posts: 1500
Joined: 2002-12-04 10:22
Location: 4. Server von rechts, 2. Reihe von oben
 

Re: Den Webserver automatisch neu starten wenn er "hängt&am

Post by Outlaw »

øxygen wrote:
Outlaw wrote: Das Problem scheint generell bei den Images von 1&1 mit SuSE 8.1 aufzutreten, ich habe schon sehr viel hier darüber gelesen (Problem ja, Lösung noch nicht direkt, zumindest bei mir).
Hast du schon mal die Apache2 RPMs von SuSE probiert? Ich habe ein umgebautes (wegen SuExec) davon auf einem SuSE 8.1 Rooti in Verbindung mit selbstgebauten PHP 4.3.4 laufen, ohne Probleme. Sogar Confixx tuts ;) den Stuff gibts hier, sogar ein php rpm.
ftp://ftp.suse.com/pub/projects/apache/
Ich hatte mal den Apachen 2 nach der Anleitung hier vom Forum mit allem drum und dran installiert, jedoch scheiterte letztendlich die ganze Aktion daran, daß der Apache wegen irgend nem Befehl nicht starten konnte, den er nicht verstand. Mit Angabe der Fehler und allem drum und dran konnte hier keiner helfen. Ich hab mich dann halb tot gegoogelt, bis ich herausfand, daß das Problem an der SSL Geschichte lag. Ich habe dann zwar upgedated auf ne neuere OPENSSL Version, die den Fehler beseitigen sollte, da dies eindeutig an der alten Version lag, die den Befehl nicht kannte, jedoch lief auch das nicht und auch hier konnte niemand helfen. Das Problem war, daß alles immer noch auf die alte Version zurückgriff und mir niemand sagen konnte, was ich tun muss, dass der Apache und Co auf die neue Version zugreifen.

Ein Zurückgehen auf die Apache 1.3.27 Version lief dann wenigstens wieder so wie vorher ....

Wie gesagt, ich lasse es dieses Jahr noch so. Wenn irgendwann jemand erfolgreich auf SuSE 9.0 gegangen ist und dies auch noch dokumentiert hat, würde ich den nächsten größeren Schritt wagen, ansonsten komme ich nochmal auf den Apachen 2 zurück.

Gruß Outi
breaker
Posts: 5
Joined: 2003-12-21 15:11
 

Re: Den Webserver automatisch neu starten wenn er "hängt&am

Post by breaker »

chrisu wrote:
Die Zeilen

Code: Select all

if [ `wget "http://www.breaker-net.de/test/"
 --delete-after 2>&1 | grep -c "200 OK"` -eq 0 ]; then
müssen eine Zeile sein.
Versuch mal nach dem letzten "fi" einen Zeilenumbruch ohne Leerzeichen nach dem "fi".
So funktioniert er bei mir.

Chris
will trotzdem nich. gleicher fehler
phanthomas
Posts: 4
Joined: 2004-02-17 19:19
 

Re: Den Webserver automatisch neu starten wenn er "hängt&am

Post by phanthomas »

chrisu wrote:Bei mir es auch definitiv logrotate, wenn es Probleme gibt (da immer 23:59).
Seit ich aber eine "restart statt reload" im logrotate-Skript angegeben habe, läuft alles.
hm, das kommt von der zeit häufig hin, aber da hab ich ohnehin noch ein anderes problem. aber der tipp scheint sinnvoll.

wo müsste man das denn ändern?!
Suse => /etc/logrotate.d/apache ?!

und dann in ALLEN einträgen /etc/init.d/apache reload in /etc/init.d/apache restart ändern?!

bringt das irgendwelche (bisher durch mich nicht absehbaren) möglicherweise negativen konsequenzen mit sich?!

würd mich über aufklärung freuen.. dank im voraus!

ps: und ja - das script will auch bei mir beim besten willen nicht:

Mailvariante #1:
running hourly cronjob scripts

SCRIPT: apachecheck exited with RETURNCODE = 2.
SCRIPT: ouput (stdout && stderr) follows

/etc/cron.hourly/apachecheck: line 1: !#/bin/bash
: No such file or directory
/etc/cron.hourly/apachecheck: line 17: syntax error near unexpected token `fi'
/etc/cron.hourly/apachecheck: line 17: `fi'
SCRIPT: apachecheck
Mailvariante #1:
running hourly cronjob scripts

SCRIPT: apachecheck exited with RETURNCODE = 127.
SCRIPT: ouput (stdout && stderr) follows

nice: /etc/cron.hourly/apachecheck: No such file or directory
SCRIPT: apachecheck
------- END OF OUTPUT
und darüber bin ich bisher nicht hinweggekommen...
Fakt ist: Alle files sind dort wo sie hingehören!

habe auch immer wieder brav
p15135680:/etc/cron.hourly # chmod 0550 apachecheck
p15135680:/etc/cron.hourly # chown root:root apachecheck
p15135680:/etc/cron.hourly # ./apachecheck
: bad interpreter: No such file or directory
p15135680:/etc/cron.hourly # apachecheck
-bash: apachecheck: command not found
ausgeführt..

URL zum Script
User avatar
Joe User
Project Manager
Project Manager
Posts: 11191
Joined: 2003-02-27 01:00
Location: Hamburg
Contact:
 

Re: Den Webserver automatisch neu starten wenn er "hängt&am

Post by Joe User »

phanthomas wrote:wo müsste man das denn ändern?!
Suse => /etc/logrotate.d/apache ?!
Ja.
phanthomas wrote:und dann in ALLEN einträgen /etc/init.d/apache reload in /etc/init.d/apache restart ändern?!
Nein!
phanthomas wrote:bringt das irgendwelche (bisher durch mich nicht absehbaren) möglicherweise negativen konsequenzen mit sich?!
Nein.
phanthomas wrote:ps: und ja - das script will auch bei mir beim besten willen nicht:
Du brauchst das Script nicht...
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Post Reply