Page 1 of 2
Den Webserver automatisch neu starten wenn er "hängt&am
Posted: 2003-12-19 13:20
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
Re: Den Webserver automatisch neu starten wenn er "hängt&am
Posted: 2003-12-19 13:25
by flo
hast Du die erste Leerzeile auhc im Script? Stimmen die Zeilenumbrüche? Gibt es /bin/bash ?
flo.
Re: Den Webserver automatisch neu starten wenn er "hängt&am
Posted: 2003-12-19 14:34
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
Re: Den Webserver automatisch neu starten wenn er "hängt&am
Posted: 2003-12-19 16:07
by distanzcheck
ist mit einem * markiert
und /bin/bash ist auch da
Dirk
Re: Den Webserver automatisch neu starten wenn er "hängt&am
Posted: 2003-12-19 16:23
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
Re: Den Webserver automatisch neu starten wenn er "hängt&am
Posted: 2003-12-19 17:29
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
Re: Den Webserver automatisch neu starten wenn er "hängt&am
Posted: 2003-12-19 17:30
by chrisu
Soory, gleich noch eine Frage :oops:
Sind beide Aufrufe notwendig:
und
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
Re: Den Webserver automatisch neu starten wenn er "hängt&am
Posted: 2003-12-19 17:36
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";
}
}
}
}
Re: Den Webserver automatisch neu starten wenn er "hängt&am
Posted: 2003-12-19 17:37
by distanzcheck
bei mir hat das nichts gebracht
???
Dirk
Re: Den Webserver automatisch neu starten wenn er "hängt&am
Posted: 2003-12-19 17:44
by chrisu
Alexander Newald wrote:Ã?brigens sollte man, wenn man öffter den Indianer mit -9 killed, ab und zu folgendes Script laufen lassen:
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
Re: Den Webserver automatisch neu starten wenn er "hängt&am
Posted: 2003-12-19 18:06
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
Re: Den Webserver automatisch neu starten wenn er "hängt&am
Posted: 2003-12-19 18:17
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.
Re: Den Webserver automatisch neu starten wenn er "hängt&am
Posted: 2003-12-19 18:17
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?
Re: Den Webserver automatisch neu starten wenn er "hängt&am
Posted: 2003-12-19 18:17
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.
Re: Den Webserver automatisch neu starten wenn er "hängt&am
Posted: 2003-12-22 10:09
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?
Re: Den Webserver automatisch neu starten wenn er "hängt&am
Posted: 2003-12-22 13:12
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
Re: Den Webserver automatisch neu starten wenn er "hängt&am
Posted: 2003-12-22 13:56
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.
Re: Den Webserver automatisch neu starten wenn er "hängt&am
Posted: 2003-12-22 14:07
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
Re: Den Webserver automatisch neu starten wenn er "hängt&am
Posted: 2003-12-22 15:53
by breaker
Re: Den Webserver automatisch neu starten wenn er "hängt&am
Posted: 2003-12-22 15:58
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/
Re: Den Webserver automatisch neu starten wenn er "hängt&am
Posted: 2003-12-22 16:18
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
Re: Den Webserver automatisch neu starten wenn er "hängt&am
Posted: 2003-12-22 17:24
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
Re: Den Webserver automatisch neu starten wenn er "hängt&am
Posted: 2003-12-22 18:04
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
Re: Den Webserver automatisch neu starten wenn er "hängt&am
Posted: 2004-02-17 19:23
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
Re: Den Webserver automatisch neu starten wenn er "hängt&am
Posted: 2004-02-17 19:43
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...