NEWS
IObroker started nicht mehr: update node.js nach V16.18.0
-
@bakkergr
Danke für die Rückmeldung.
Hab es jetzt mit dem node.js Installer gemacht und IOB neu installiert, läuft wieder.... -
@bakkergr said in IObroker started nicht mehr: update node.js nach V16.18.0:
wmic.js
Habe das letztendlich das gleiche gemacht wie @bernd1967.
Eine neue Installation von IOBroker gemacht mit dem neuen Installer.
Prozedur wie im Thread https://forum.iobroker.net/topic/55185/test-iobroker-unter-windows-installieren-2022-edition/134 angegeben ausgeführt und den alter iobroker-data Ordner zurück kopiert.
Alles läuft ohne Probleme (Node.js v16.15.1 / npm v8.11.0 ). -
Hi,
also mit Node.js v 16.19.0 gibt es leider das gleiche Problem. Ich denke auch, es hängt irgendwie an den Rechten. Entweder es wird irgendwo noch ein Konfigurationsparameter benötigt oder irgendein File ist schreibgeschützt, das es nicht sein sollte.Klar kann man einfach iobroker neu installieren, ich würde nur gerne den Grund für das Problem verstehen.
Der eigentliche Fehler tritt hier auf:
at <instance home>\node_modules\pidusage\lib\wmic.js:65:34const uptime = Math.floor(os.uptime() || (date / 1000))
Also beim Aufruf von os.uptime().
Ich vermute mal, das das der erste Aufruf einer Funktion vom os Package ist, und das es mit dieser Package ein Rechte Problem gibt. Leider hab ich bisher keine weitere Info gefunden. Sagt das hier evtl. jemandem was? -
So, ich glaube ich habe die Ursache (und Lösung) gefunden.
Der "alte" Installer legt einen ioBroker User an, mit dem der Windows ioBroker Service gestartet wird. Dieser scheint nicht die erforderlichen Rechte zu haben, um mit eine node.js Version ab 16.18.0 Zugriff auf die System Resourcen zu haben.
Beheben lässt sich das so:- ioBroker stoppen
- In Windows das Dienste-Fenster ("Services") als Admin öffnen und den ioBroker Dienst suchen.
- Eigenschaften des Dienstes öffnen und auf die Seite "Anmelden" wechseln.
- Dort das Häkchen bei "Lokales Systemkonto" setzen, "Dieses Konto" wird dadurch deselektiert
- OK drücken und ioBroker neu starten
Und schon läuft ioBroker auch mit node.js ab 16.18.0 (bei mir im Test jetzt mit 16.19.0)
Evtl. wäre es sauberer, den verwendeten User mit den erforderlichen Rechten auszustatten, denn @Stabilostick hat sich damals bestimmt was dabei gedacht, einen eigenen User anzulegen. Da hab ich aber keinen Plan, wie man das machen kann.Es handelt sich wohl um einen "Virtuellen Account", der eigentlich alle Anforderungen für ioBroker mitbringen sollte. Warum das jetzt unter den Neuen Node Versionen nicht mehr geht? Keine Ahnung. Der o.g. Workaround dürfte jedenfalls keine Nachteile mit sich bringen.
Könnte mal jemand mit einer neuen Installation gucken, welcher User da beim Service eingetragen ist?
-
@gaspode sagte in IObroker started nicht mehr: update node.js nach V16.18.0:
Könnte mal jemand mit einer neuen Installation gucken, welcher User da beim Service eingetragen ist?
Wo sehe ich das?
-
- In Windows das Dienste-Fenster ("Services") als Admin öffnen und den ioBroker Dienst suchen.
- Eigenschaften des Dienstes öffnen und auf die Seite "Anmelden" wechseln.
- Gucken, was eingetragen ist. Ist das Häkchen bei "Lokales Systemkonto" oder "Dieses Konto"? Wenn "Dieses Konto": Was ist da eingetragen?
-
@gaspode sagte in IObroker started nicht mehr: update node.js nach V16.18.0:
Ist das Häkchen bei "Lokales Systemkonto" oder "Dieses Konto"?
Dieses KontoEdit:
"Lokales Systemkonto"
-
@sigi234 said in IObroker started nicht mehr: update node.js nach V16.18.0:
Dieses Konto
Und was ist da eingetragen?
Und das ist eine Installation mit dem neuen Installer (also ohne Möglichkeit mehrerer Instanzen parallel)? -
@gaspode sagte in IObroker started nicht mehr: update node.js nach V16.18.0:
@sigi234 said in IObroker started nicht mehr: update node.js nach V16.18.0:
Dieses Konto
Und was ist da eingetragen?
Und das ist eine Installation mit dem neuen Installer (also ohne Möglichkeit mehrerer Instanzen parallel)?
Ja
-
@sigi234
OK, mit deinem Edit wird es klar. Also wie vermutet, setzt der neue Installer im Gegensatz zum alten "Lokales Systemkonto". Somit dürfte das Ändern bei Installationen mit dem alten Installer wie oben beschrieben keine Nachteile haben.
Danke für's Nachsehen. -
Jupp, der neue Installer lässt leider mehrerer Instanzen parallel nicht zu, was Schade ist da man nicht wirklich testen kann.
-
@Gaspode Auch hier mit neuem Installer (ohne Instanzen)
-
@uwerlp
Danke. Ich denke inzwischen können wir es als gesichert ansehen, dass das Problem mit neueren Node Versionen im Zusammenhang mit dem alten Installer vom User des Services abhängt.
Mit anderen Worten: Man kann Instanzen des alten Installers für neuere Node Versionen fit machen, indem man den User des entsprechenden Services wie oben beschrieben ändert.