PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Speicherzugriffsfehler



jhr-online
22.09.2005, 13:06
Moin moin!

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

ManuelW
22.09.2005, 15:46
leider nicht, den fehler hatte ich noch nie.
ich kenn nur "segmentation fault"

Buebchen
22.09.2005, 16:35
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.

jhr-online
22.09.2005, 17:47
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?

ManuelW
22.09.2005, 19:54
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 :)

jhr-online
22.09.2005, 20:30
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

jhr-online
26.09.2005, 10:24
Auch wenn die Ausgabe in /var/log/monitor etwas interessant ist:
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

ManuelW
26.09.2005, 13:29
?? versteh nich was du meinst :P

jhr-online
26.09.2005, 14:55
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.

Phil
26.09.2005, 15:04
#!/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

Buebchen
26.09.2005, 16:49
Da scheinen die Anführungszeichen nicht korrekt gesetzt zu sein. Oder aber er nutzt ne Shell, die das anders auswertet. Die Zeile



echo `date | cut -c5-19` " MONITOR FW not running! Restarting..." >> /var/log/monitor


soll eigentlich eine Ausgabe machen (Befehl=echo) die Ausgabe soll das Ergebnis des Programmaufrufs


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.