NEWS
[gelöst] Restart von Skripten nach Restart javascript-Inst.?
-
Ich starte im Scripts-Tab ein Testprogramm, das periodisch Logdatei-Einträge vornehmen soll.
Konsequenz:
- Die gewünschten Logdatei-Einträge werden vorgenommen.
- Unter javascript.0.scriptEnabled ist das Skript mit "true" gekennzeichnet.
- Das Testprogramm ist im Scripts-Tab als laufend markiert (grünes Doppelbalken-Icon).
Nun führe ich einen Restart der zugehörigen javascript-Instanz durch und warte bis die Instanz wieder grün markiert ist.
Konsequenz:
- Die gewünschten Logdatei-Einträge werden nicht mehr vorgenommen.
- Unter javascript.0.scriptEnabled ist das Skript mit "false" gekennzeichnet.
- Das Testprogramm ist im Scripts-Tab weiterhin als laufend markiert (grünes Doppelbalken-Icon).
- Das Testprogramm ist im Scripts-Tab auch nach einem Refresh der Seite weiterhin als laufend markiert (grünes Doppelbalken-Icon).
- Das Testprogramm ist im Scripts-Tab auch nach einem Wechsel des Browsers weiterhin als laufend markiert (grünes Doppelbalken-Icon).
Ähnlich verhält es sich übrigens bei einem ioBroker Restart.
Dazu drei Fragen:
- Liege ich denn mit meiner Erwartung falsch, dass nach einem Restart der javascript-Instanz vorher laufende Skripte wieder automatisch gestartet werden sollten?
- Ist der fehlende Restart von Skripten nach einem Restart der javascript-Instanz in Euren Augen ein Feature oder ein Fehler?
- Fühle ich mich denn durch den falschen Status im Scripts-Tab zu Recht vereimert?
-
@hsteinme sagte: Liege ich denn mit meiner Erwartung falsch, dass nach einem Restart der javascript-Instanz vorher laufende Skripte wieder automatisch gestartet werden sollten?
Nein, Du liegst richtig.
@hsteinme sagte in Autom. Restart von Skripten nach Restart javascript-Instanz?:
Ist der fehlende Restart von Skripten nach einem Restart der javascript-Instanz in Euren Augen ein Feature oder ein Fehler?
Das ist ein Fehler, der anscheinend nur bei Dir auftritt. Bei mir (Version 5.5.2) werden alle aktivierten Skripte nach Instanz- bzw. ioBroker-Restart gestartet.
@hsteinme sagte in Autom. Restart von Skripten nach Restart javascript-Instanz?:
Testprogramm, das periodisch Logdatei-Einträge vornehmen soll.
Wie sieht das Skript aus?
-
@paul53 Die geschilderte Problematik ist skript-unabhängig. Sie tritt bei mir mit allen Javaskripten auf. Zur Reproduktion des Fehlers habe ich letztlich ein Mini-Skriptlein verwendet, bei dem ich sehr einfach erkennen kann, ob es aktiv ist:
'use strict'; setInterval(function() { log('Hier bin ichhhhhhhhhhhhhhhhhhhhhh'); }, 20000);
-
@hsteinme
Welche Version des Javascript-Adapters und des js-controllers? -
- Javascript-Adapter 5.2.21
- js-controller 4.0.15
-
@hsteinme
Ich verwende zwar neuere Versionen (latest), aber daran sollte es nicht liegen. Insbesondere verwundert mich:Unter javascript.0.scriptEnabled ist das Skript mit "false" gekennzeichnet.
Was sagt das Protokoll nach dem JS-Instanz-Start zu?
info Start javascript script.js.Skriptname
-
@paul53 sagte in Autom. Restart von Skripten nach Restart javascript-Instanz?:
Insbesondere verwundert mich:
Unter javascript.0.scriptEnabled ist das Skript mit "false" gekennzeichnet.
Warum wundert Dich das? das "false" passt doch zu der Situation, dass die Skripte nicht laufen.
Hier das den Javascript Adapter betreffende Log während Stop- und Start des Adapters:
2022-03-30 20:08:20.091 - [32minfo[39m: javascript.0 (869) Start javascript script.js.common.Allgemeines._Test~ 2022-03-30 20:08:20.117 - [32minfo[39m: javascript.0 (869) script.js.common.Allgemeines._Test~: registered 0 subscriptions and 0 schedules 2022-03-30 20:08:25.118 - [32minfo[39m: javascript.0 (869) script.js.common.Allgemeines._Test~: Hier bin ichhhhhhhhhhhhhhhhhhhhhh ... und einige Logeinträge mehr 2022-03-30 20:09:10.120 - [32minfo[39m: javascript.0 (869) script.js.common.Allgemeines._Test~: Hier bin ichhhhhhhhhhhhhhhhhhhhhh 2022-03-30 20:09:15.121 - [32minfo[39m: javascript.0 (869) script.js.common.Allgemeines._Test~: Hier bin ichhhhhhhhhhhhhhhhhhhhhh 2022-03-30 20:09:19.644 - [32minfo[39m: javascript.0 (869) Adapter is disabled => stop 2022-03-30 20:09:19.646 - [32minfo[39m: javascript.0 (869) Stop script script.js.common.Allgemeines.AlexaSpeakers 2022-03-30 20:09:19.647 - [32minfo[39m: javascript.0 (869) Stop script script.js.common.Allgemeines.AlexaVolumes ... alle aktiven Skripte werden angehalten 2022-03-30 20:09:19.703 - [32minfo[39m: javascript.0 (869) Stop script script.js.common.Haushalt.LandroidSteuerung 2022-03-30 20:09:19.703 - [32minfo[39m: javascript.0 (869) Stop script script.js.common.Haushalt.RoombaSteuerung 2022-03-30 20:09:19.704 - [32minfo[39m: javascript.0 (869) Stop script script.js.common.Allgemeines._Test~ 2022-03-30 20:09:19.741 - [32minfo[39m: host.RaspberryPi "system.adapter.javascript.0" disabled 2022-03-30 20:09:19.747 - [32minfo[39m: host.RaspberryPi stopInstance system.adapter.javascript.0 (force=false, process=true) 2022-03-30 20:09:20.120 - [32minfo[39m: javascript.0 (869) Got terminate signal TERMINATE_YOURSELF 2022-03-30 20:09:20.176 - [32minfo[39m: javascript.0 (869) terminating 2022-03-30 20:09:20.178 - [34mdebug[39m: javascript.0 (869) Plugin sentry destroyed 2022-03-30 20:09:20.178 - [32minfo[39m: javascript.0 (869) Terminated (NO_ERROR): Without reason 2022-03-30 20:09:21.179 - [32minfo[39m: javascript.0 (869) terminating with timeout 2022-03-30 20:09:21.230 - [32minfo[39m: host.RaspberryPi stopInstance system.adapter.javascript.0 send kill signal 2022-03-30 20:09:22.463 - [32minfo[39m: host.RaspberryPi stopInstance system.adapter.javascript.0 killing pid 869 2022-03-30 20:09:23.132 - [32minfo[39m: host.RaspberryPi instance system.adapter.javascript.0 terminated with code 0 (NO_ERROR) 2022-03-30 20:09:41.713 - [32minfo[39m: host.RaspberryPi "system.adapter.javascript.0" enabled 2022-03-30 20:09:42.114 - [32minfo[39m: host.RaspberryPi instance system.adapter.javascript.0 started with pid 16223 2022-03-30 20:09:45.113 - [34mdebug[39m: javascript.0 (16223) Redis Objects: Use Redis connection: 127.0.0.1:9001 2022-03-30 20:09:45.175 - [34mdebug[39m: javascript.0 (16223) Objects client ready ... initialize now 2022-03-30 20:09:45.178 - [34mdebug[39m: javascript.0 (16223) Objects create System PubSub Client 2022-03-30 20:09:45.179 - [34mdebug[39m: javascript.0 (16223) Objects create User PubSub Client 2022-03-30 20:09:45.283 - [34mdebug[39m: javascript.0 (16223) Objects client initialize lua scripts 2022-03-30 20:09:45.314 - [34mdebug[39m: javascript.0 (16223) Objects connected to redis: 127.0.0.1:9001 2022-03-30 20:09:45.410 - [34mdebug[39m: javascript.0 (16223) Redis States: Use Redis connection: 127.0.0.1:9000 2022-03-30 20:09:45.478 - [34mdebug[39m: javascript.0 (16223) States create System PubSub Client 2022-03-30 20:09:45.479 - [34mdebug[39m: javascript.0 (16223) States create User PubSub Client 2022-03-30 20:09:45.542 - [34mdebug[39m: javascript.0 (16223) States connected to redis: 127.0.0.1:9000 2022-03-30 20:09:45.793 - [34mdebug[39m: javascript.0 (16223) Plugin sentry Initialize Plugin (enabled=true) 2022-03-30 20:09:46.409 - [32minfo[39m: javascript.0 (16223) starting. Version 5.2.21 in /opt/iobroker/node_modules/iobroker.javascript, node: v12.22.10, js-controller: 4.0.15 2022-03-30 20:09:46.509 - [34mdebug[39m: javascript.0 (16223) Loaded TypeScript definitions for node: ["node_modules/@types/node/package.json","node_modules/@types/node/index.d.ts","node_modules/@types/node/assert.d.ts","node_modules/@types/node/globals.d.ts","node_modules/@types/node/async_hooks.d.ts","node_modules/@types/node/buffer.d.ts","node_modules/@types/node/child_process.d.ts","node_modules/@types/node/cluster.d.ts","node_modules/@types/node/console.d.ts","node_modules/@types/node/constants.d.ts","node_modules/@types/node/crypto.d.ts","node_modules/@types/node/dgram.d.ts","node_modules/@types/node/dns.d.ts","node_modules/@types/node/domain.d.ts","node_modules/@types/node/events.d.ts","node_modules/@types/node/fs.d.ts","node_modules/@types/node/http.d.ts","node_modules/@types/node/http2.d.ts","node_modules/@types/node/https.d.ts","node_modules/@types/node/inspector.d.ts","node_modules/@types/node/module.d.ts","node_modules/@types/node/net.d.ts","node_modules/@types/node/os.d.ts","node_modules/@types/node/path.d.ts","node_modules/@types/node/perf_hooks.d.ts","node_modules/@types/node/process.d.ts","node_modules/@types/node/punycode.d.ts","node_modules/@types/node/querystring.d.ts","node_modules/@types/node/readline.d.ts","node_modules/@types/node/repl.d.ts","node_modules/@types/node/stream.d.ts","node_modules/@types/node/string_decoder.d.ts","node_modules/@types/node/timers.d.ts","node_modules/@types/node/tls.d.ts","node_modules/@types/node/trace_events.d.ts","node_modules/@types/node/tty.d.ts","node_modules/@types/node/url.d.ts","node_modules/@types/node/util.d.ts","node_modules/@types/node/v8.d.ts","node_modules/@types/node/vm.d.ts","node_modules/@types/node/wasi.d.ts","node_modules/@types/node/worker_threads.d.ts","node_modules/@types/node/zlib.d.ts","node_modules/@types/node/globals.global.d.ts"] 2022-03-30 20:09:46.567 - [34mdebug[39m: javascript.0 (16223) Loaded TypeScript definitions for request: ["node_modules/@types/request/package.json","node_modules/@types/request/index.d.ts"] 2022-03-30 20:09:46.569 - [32minfo[39m: javascript.0 (16223) requesting all states 2022-03-30 20:09:46.570 - [32minfo[39m: javascript.0 (16223) requesting all objects 2022-03-30 20:09:49.236 - [32minfo[39m: javascript.0 (16223) received all objects 2022-03-30 20:09:49.406 - [32minfo[39m: javascript.0 (16223) received all states 2022-03-30 20:09:49.420 - [31merror[39m: javascript.0 (16223) Cannot find view "script" for search "javascript"
Danach kommen erst wieder javascript.0 Einträge, wenn ich meine Skripts wieder manuell starte.
Was hat es mit diesem fehlenden view "script" auf sich?
-
@hsteinme sagte: Warum wundert Dich das?
Mich wundert, dass der Wert bei Instanz-Neustart auf false gesetzt wird.
-
2022-03-30 20:09:19.704 - [32minfo[39m: javascript.0 (869) Stop script script.js.common.Allgemeines._Test~
beim Runterfahren der Instanz sorgt zunächst dafür, dass das Enabled-Flag (zu Recht) auf "false" gesetzt wird. Die Frage ist halt, warum wird nach dem Hochfahren kein einziges Skript gestartet.
-
Das Problem ist nun gelöst - durch eine Drüber-Installation der Adapter Version 5.2.21. Nach einem Restart des Adapters sind nun all die Skripte wieder am Laufen, die zuvor am Laufen waren.
javascript.0 (16223) Cannot find view "script" for search "javascript"
ist jetzt nicht mehr im Log zu sehen. Stattdessen kommen folgende heiß ersehnte Einträge
Start javascript script.js.common.IT-Systeme.AppsControl Start javascript script.js.common.Haushalt.MuellAbfuhrTermine ... Start javascript script.js.common.Allgemeines._Test~
@paul53 Dir danke ich ganz besonders herzlich für Dein Bemühen, mir zu helfen. Es ist schon bewundernswert, welche Quantität und Qualität Du hier an Unterstützungsleistung erbringst. Nochmals Danke & Weiter so