NEWS
CRON Regel wird ausgeführt obwohl Skript inaktiv
-
Also ich habs jetzt mal so gelöst, dass wenn die Anwesenheitssimulation auf false geht ich in den einzelnen Skripts allen Cron-Regeln über einen Trigger auf den Datenpunkt nochmal ein stop gebe und die Skripte dann mit einer Verzögerung von 5 Sek im "Masterskript" deaktivieren lasse.
Da scheint jetzt so zu klappen wie ich mir das vorstelle.
Aber merkwürdig ist das trotzdem. Zumal wie gesagt bis vor ein paar updates von javascript alles funktioniert hat.
Danke trotzdem für euren input dazu!
-
@romann-k sagte in CRON Regel wird ausgeführt obwohl Skript inaktiv:
Zumal wie gesagt bis vor ein paar updates von javascript alles funktioniert hat.
Das ist möglich, tw. ändern sich Dinge und Code der zuvor zwar unsauber war aber durchgewunken wurde wird jetzt strenger bewertet.
-
@thomas-braun Aber ist es denn "sauber", dass Cron-Regeln in einem inaktiven Skript ausgeführt werden oder verstehe ich einfach die Logik dahinter nicht?
-
crons lauern im Hintergrund, die kannst du nicht einfach 'inaktivieren', indem das skript nicht durchlaufen wird.
-
@thomas-braun Also verstehe ich das richtig, dass diese Cron-Regeln mit Dialog garnicht durch Javascript ausgeführt werden sondern irgendwo im Hintergrund im System durchlaufen?
Gibt es irgendeine Möglichkeit aktive Crons zu sehen? Du meintest ja man kann Crons nicht einfach so deaktivieren. Wie sonst soll man das denn können? Gibt es irgendeinen Linux Befehl den man senden kann damit alle Cron Regeln gelöscht werden? Das wäre dann ja auch eine Möglichkeit das zu bereinigen.
Das mit dem stop vor dem Deaktivieren der Skripts hat es auch nicht gebracht und bestimmte Cronjobs sind trotz stop noch gelaufen. Ich habe den Pi jetzt einmal komplett rebootet und hoffe das es heute Abend nicht wieder eine Lichtershow gibt.
Aber ehrlich gesagt kommt mir das irgendwie wie ein Bug vor. Ich kann mir beim besten Willen nicht vorstellen, dass das so gedacht ist. Ich verlasse mich bei anderen Triggern ja auch darauf, dass die mit dem Skript auch komplett deaktiviert sind und nicht noch in bestimmten Fällen weiter laufen.
VG
-
@romann-k sagte: Möglichkeit aktive Crons zu sehen?
Habe ich selbst noch nicht verwendet.
-
-
@thomas-braun sagte: Die cronjob dürften an crond übergeben werden.
Das denke ich nicht. Der Javascript-Adapter verwendet das NPM-Modul node-schedule.
-
@paul53
Okay. -
@paul53 Also ich glaube so langsam verstehe ich es.
Das heißt wenn ich vor dem Beenden des Skripts in dem die Simulation läuft diese JS-Funktion durchlaufen lasse,
const list = getSchedules(false); // hier muss ´false´ rein, weil ich nur die Crons in diesem Blockly-Skript zurück haben möchte, richtig? list.forEach(schedule => console.log(JSON.stringify(schedule))); list.forEach(schedule => clearSchedule(schedule));
dann kann ich sicher sein das alle noch laufenden Crons in dem Skript erfasst und beendet werden, richtig? (Ich weiss, die dritte Zeile müsste nicht)
Ich bin ehrlich, ich bin eine Niete in Informatik und Programmierung und suche mir immer alles für einen bestimmten Anwendungsfall raus und hoffe das Beste Also seht mir nach wenn ich einen Moment länger brauche bis der Groschen fällt und Danke für die Hilfe bis hierher!