Ich hab ab und zu das Problem, dass mein Monitor abbricht und in die oberste Zeile einfach Speicherzugriffsfehler (oder war's Speicherzugriffsverletzung? *nicht ganz sicher*) schreibt. Weiß jemand von euch, woher das kommt, bzw., was man dagegen tun kann?
jhr
22.09.2005, 15:46
ManuelW
leider nicht, den fehler hatte ich noch nie.
ich kenn nur "segmentation fault"
22.09.2005, 16:35
Buebchen
Einige Distri's haben so gut wie jeden Fehler eingedeutscht, wenn man direkt zu Beginn als Sprache deutsch nimmt.
Ich denke mal, daß es ein SegFault ist. Ein SegFault kann so ziemlich jede Ursache habe. Wenn es mit der mysql Erweiterung zusammenhängt, dann wird es am ehesten daran liegen, daß die Verbindung zum mySQL Server unterbrochen ist oder die Zugangsdaten falsch sind.
22.09.2005, 17:47
jhr-online
Ich schätze deine Arbeit zu sehr, um das wahr haben zu wollen... Im Ernst: Ich hatte den Fehler schon vor deinen Patches. Hat denn einer von euch ne Idee, wie man das Problem lösen könnte? Ich bin da echt nicht so fit, aber könnte man nicht irgendwie nen Eintrag in die crontab machen, der überprüft, ob der Monitor noch läuft und im Zweifelsfall neu startet?
22.09.2005, 19:54
ManuelW
nicht wirklich, ich hatte nen "seg fault" auch ab und an, konnte aber
keinen wirklichen grund dafür finden.
starte deinen monitor einfach so
#!/bin/bash
while :; do
echo `date | cut -c5-19` " MONITOR FW not running! Restarting..." >> /var/log/monitor
sleep 45
/usr/local/bin/monitor -f .monrc
done
klappt wunderbar :)
22.09.2005, 20:30
jhr-online
Jippijei :-)
Jetzt hab ich nicht nur eine eventuelle Lösung für mein Problem, sondern gleichzeitig mein erstes funktionierendes Shell Script geschrieben. Vielen Dank! Jetzt mache ich weiter mit einem script-Tutorial und mit jedem weiteren Problem lerne ich dazu...
thx a lot!
jhr
26.09.2005, 10:24
jhr-online
Auch wenn die Ausgabe in /var/log/monitor etwas interessant ist:
Code:
date | cut -c5-19 Monitor FW not running! Restarting...
und ich mir eigentlich nicht vorstellen kann, dass das so geplant war, danke nochmal! Ich weiß nicht genau, warum, aber es funktioniert :-)
jhr
26.09.2005, 13:29
ManuelW
?? versteh nich was du meinst :P
26.09.2005, 14:55
jhr-online
Naja, exakt das, was ich da geschrieben hab, steht in der log-Datei. Ich hätte gedacht, dass "date | cut -c5-19" vielleicht einen Sinn hat. Zum Beispiel könnte ich mir vorstellen, dass "date" durch das aktuelle Datum ersetzt wird.
Und ich verstehe nichts, weil ich keine Ahung von scripts hab und nicht weiß, was "while :; do" anrichtet. Ich sehe nur, dass monitor imer läuft und zwischendurch neu gestartet wurde.
26.09.2005, 15:04
Phil
Code:
#!/bin/bash
while :; do
echo `date | cut -c5-19` " MONITOR FW not running! Restarting..." >> /var/log/monitor
sleep 45
/usr/local/bin/monitor -f .monrc
done
1. Zeile: Standard Aufruf für ein Script
2. Zeile: Starten einer Schleife
3. Zeile: Sollte den beschnittenen Inhalt von Date und Monitor FW not running....... in die Datei /var/log/monitor schreiben
4. Zeile: Script "schläft" wartet für 45 Sekunden
5. Zeile: monitor wird neu gestartet
6. Zeile: Schleife wird nach dem Absturz von Monitor neu durchlaufen
26.09.2005, 16:49
Buebchen
Da scheinen die Anführungszeichen nicht korrekt gesetzt zu sein. Oder aber er nutzt ne Shell, die das anders auswertet. Die Zeile
soll eigentlich eine Ausgabe machen (Befehl=echo) die Ausgabe soll das Ergebnis des Programmaufrufs
Code:
date | cut -c5-19
sein. Aber hier wird kein Programm gestartet sondern eben der Text ins Protokoll geschrieben.
Kann sein, daß es nicht die richtigen Hochkomma sind. Wobei die Ausgabe nur zur Information ist. Sie hat keine Bedeutung für das Funktionieren des Skripts.