so wie ich das vorgeschlagen hatte funktioniert es nicht, da anscheinend der micrond in seiner shell (?) die if-Anweisung nicht ausführen kann. Was aber funktioniert ist, wenn man den watchdog in ein script auslagert, beispielsweise /tmp/hoodselector-watchdog.sh
---------------------------8<--------------------------- #!/bin/sh if [ $(($(date +%s) - $(date +%s -r "/var/run/hoodselector.pid"))) -gt 120 ]; then mailsend -f alert@ffnw.de -t alert@ffnw.de -smtp mail.ffnw.de -sub "$(uci get system.@system[0].hostname)" -msg-body /tmp/hoodselector_error rm /var/run/hoodselector.pid fi --------------------------->8---------------------------
(nicht vergessen: chmod +x tmp/hoodselector-watchdog.sh) und die /usr/lib/micron.d/hoodselector entsprechend modifiziert:
*/2 * * * * /tmp/hoodselector-watchdog.sh;/usr/sbin/hoodselector 2>> /tmp/hoodselector_error
das mit dem Mailversand an alert@ffnw.de klappt zwar, allerdings werden alle mails mit "*** SPAM ***" geflagt. lässt sich das noch irgendwie abstellen?
LG lorenz
Am 07.07.2017 um 17:03 schrieb lrnzo via Dev:
Ok, erstmal danke für das feedback. Ich habe jetzt gemacht, dass meine testrouter mir im Falle des festgefahrenen hoodselectors eine mail mit dem jüngsten error-log im Anhang schicken können.
opkg update opkg install mailsend-nossl
und in der /usr/lib/micron.d/hoodselector steht jetzt:
*/2 * * * * if [ $(($(date +%s) - $(date +%s -r "/var/run/hoodselector.pid"))) -gt 120 ];then mailsend -f alert@ffnw.de -t alert@ffnw.de -smtp mail.ffnw.de -sub "$(uci get system.@system[0].hostname)" -msg-body /tmp/hoodselector_error;rm /var/run/hoodselector.pid;fi; /usr/sbin/hoodselector 2>> /tmp/hoodselector_error
dann warten wir mal ab.
LG lorenz
Am 07.07.2017 um 14:20 schrieb Johannes Rudolph via Dev:
Moin
Ich finde das gut.
Es stellt ja sicher, dass der Hoodselector nach einem Fehlschlag nach einer gewissen Zeit wieder läuft.
So einen Zustand zu finden ist sicherlich nicht einfach, es geht ja hier nur darum wenn das passiert das dann das pid file gelöscht wird und der hoodselector noch einmal von vorne anfängt. Und nicht für immer im Nirvana hängt.
So ein Fehlerfall kann ja verschiedenste Gründe haben und damit würden wir ja unser System haben was Fehler erkennt -> error log aber sich dann nicht festfrisst
Von mir ganz klar +1
Gruß
Johannes
Von meinem iPhone gesendet
Am 07.07.2017 um 13:56 schrieb Jan-Tarek Butt via Dev dev@lists.ffnw.de:
Hi,
Am 07.07.2017 um 11:15 schrieb lrnzo via Dev: so teste ich das jetzt mal:
# cat /usr/lib/micron.d/hoodselector */2 * * * * if [ $(($(date +%s) - $(date +%s -r "/var/run/hoodselector.pid"))) -gt 120 ];then rm /var/run/hoodselector.pid;fi; /usr/sbin/hoodselector 2>> /tmp/hoodselector_error
Am 07.07.2017 um 11:02 schrieb lrnzo via Dev: Hallo Leute,
sobald der hoodselector einmal nicht terminiert hat, kann er nicht wieder ausgeführt werden, weil er seine eigene pid-file (/var/run/hoodselector.pid) nicht gelöscht hat. Folgender Einzeiler löscht diese Datei, falls sie älter als 300 sekunden = (5 minuten) ist.
if [ $(($(date +%s) - $(date +%s -r "/var/run/hoodselector.pid"))) -gt 300 ];then rm /var/run/hoodselector.pid;fi
könnte das vielleicht als watchdog/cronjob in die nächste firmware mit rein? wäre schon sehr praktisch.
PS. ich teste das jetzt mal auf paar routern
Ist es bei dir öfter vorgekommen das dieser hängen bleibt ?
Falls du so einen zustand hast. Magst du den Output von /tmp/hoodselector_error hier einmal Posten.
Ein einrichten des o.g. zeitweisen Löschens der pid ist nicht so eine optimale Lösung. Ein hängen bleiben des hoodselectors sollte nicht passieren. Daher würde ich vor so einem schritt gerne erst mal vorschlagen das wir den Problem Auslöser versuchen zu finden.
vg Tarek
Dev mailing list Dev@lists.ffnw.de https://lists.ffnw.de/mailman/listinfo/dev
Dev mailing list Dev@lists.ffnw.de https://lists.ffnw.de/mailman/listinfo/dev
Dev mailing list Dev@lists.ffnw.de https://lists.ffnw.de/mailman/listinfo/dev