Hallo DocZoid,
bei mir läuft dein Script mittlerweile gut. Allerdings habe ich folgende Probleme:
1. Im Programmteil "displayValues" muss ich die beiden "\n" entfernen, sonst erhalte ich immer noch Abrüche bei der Systemprotokollierung. Bei Entfernung der "\n" tags läuft alles gut.
2. die Variable twilight_types wird ja in der Tabelle benötigt. Du verwendest sie dann auch in der log-Ausgabedatei als Dämmerungswerte in den Klammern. Das ganze funktioniert über eine mathematische Formel. Diese zeigt dann den 0. 1. 2. 3. 4. 5. 6. 5. 4. 3. 2. 1. 0. Wert an. Da es aber den 6. Wert nicht gibt (in der Liste wäre es der 7. Punkt) bleibt hier einmal der Ausdruck innerhalb der Klammer leer. Dies führt dann zu einer Verschiebung um 1. Also richtigerweise müssten die Werte 012345 543210 abgefragt werden. Ich für meinen Fall habe es mir einfach gemacht, und nicht nach einer neuen passenden Formel gesucht. Ich habe einfach eine neue Werteliste definiert, die genau diese Reihenfolge hat und sie dann einfach der Reihe nach abgefragt. Diese Problem ist natürlich rein kosmetischer Natur und hat für die Anwendung keine Auswirkungen.
3. am Ende prüft das Script das Vorhandensein eine PID-Datei
und löscht diese dann, falls vorhanden und die PID`s identisch sind. Allerdings heißt die Datei, die sich im tmp-Verzeichniss befindet ja nicht twilight.pid sondern twilight.tcl.pid. Ändert man das Script hier, dann wird die Datei auch tatsächlich nach Ablauf gelöscht und dieser Programmteil erfüllt seine Funktion.
Hierzu fand ich es für mich persönlich praktisch, ganz am Ende zum Ablauf des Scriptes noch einen log Eintrag zu generieren, der mir sagt, ja das Sript hat tatsächlich die letzte Zeile erreicht und ist auch dadurch beendet.
4. und wichtigster Punkt: In einigen Tagen wird es im Bereich des 52. Breitengrades und 9. Längengrades zu der Situation kommen, dass die Astronomische Dämmerung erst nach Mitternacht erreicht wird. Das Script startet dann halt nochmal, ich glaube, das ist nicht weiter wild. Man kann das Script ja auch erst um 01.010 Uhr wieder starten lassen. Aber es wird noch schlimmer, ab dem 18. Mai wird es gar keinen Zeitpunkt mehr geben, an dem die Sonne tiefer als -18 Grad stehen wird. Ich habe mal den Wert in deinem Script auf -24 gesellt (weil ich nicht bis zum 18. warten wollte). Jetzt bekommt man eine Fehlermeldung und das Script stoppt anscheinend sofort, ohne weitere Werte im Tagesverlauf zu liefern. Also ab Mitte Mai wird dann das Script gar nicht mehr weiter laufen.
Hier der relevante Teil der Fehlermeldung:
Code: Alles auswählen
domain error: argument not in valid range
while executing
"expr {12*acos((sin($horizon
Gruß von Rüdiger