NEWS
IObroker started nicht mehr: update node.js nach V16.18.0
-
IObroker started nicht mehr nach update node.js von V14.19.3 nach V16.18.0
IObroker started nicht mehr: update node.js nach V16.18.0Systemdata Bitte Ausfüllen Hardwaresystem: Asus laptop Arbeitsspeicher: 8GB Festplattenart: SSD/HDD Betriebssystem: Windows 10 Node-Version: ? Nodejs-Version: 14.19.3 NPM-Version: 6.14.17 Installationsart: Manuell update Image genutzt: Ja, am anfang Mehrere von diese Fehler im log:
A system error occurred: uv_uptime returned EPERM (operation not permitted)
SystemError: A system error occurred: uv_uptime returned EPERM (operation not permitted)
at C:\Program Files\iobroker\SmartHome\node_modules\pidusage\lib\wmic.js:65:34
at ChildProcess.<anonymous> (C:\Program Files\iobroker\SmartHome\node_modules\pidusage\lib\bin.js:44:5)
at ChildProcess.emit (node:events:513:28)
at ChildProcess.emit (node:domain:489:12)
at maybeClose (node:internal/child_process:1100:16)
at Socket.<anonymous> (node:internal/child_process:458:11)
at Socket.emit (node:events:513:28)
at Socket.emit (node:domain:489:12)
at Pipe.<anonymous> (node:net:301:12)Update ausgeführt wie genannt in https://forum.iobroker.net/topic/27828/node-js-update-unter-windows/6
1: Konsole: iobroker stop
2: Sicherung des Ordners: C:\Program Files\iobroker\SmartHome\nodejs auf dem Desktop
3: Download der benötigten Node.js Version unter https://nodejs.org als Archiv nicht als msi Datei
4: Entpacken des Downloads und kopieren den Gesamten Ordners über den vorhandenen C:\Program Files\iobroker\SmartHome\nodejs Ordner.
5: Kopiere aus der Sicherungskopie des Desktops die Datei nodevars.bat in den Ordner C:\Program Files\iobroker\SmartHome\nodejs
6: Konsole: iobroker startZurück zu den alten Ordner funktioniert es wieder.
Jemand eine Ahnung ?
-
-
@crunchip
Danke für den Tip.
Werde die Installation auf einen anderen Regner ausprobieren.
Es wird im Thread übrigens ein gleiches Problem genannt als ich habe. Wied aber nicht beantwortet weil der Thread um die Installation handelt. -
erledigt
-
@bernd1967
Sieht tatsächlich genau gleich aus.
Habe leider noch keine Lösung gefunden.
Vermute etwas zu tun mit Autorisation interhalb Windows aber habe (mit Google) noch nichts gefunden was hilft.
Was mir auffällt ist das der Ordner node_modules unter nodejs/node_modules/npm in V16.18.0 viel kleiner ist als in V14.19.3 (6,44MB / 14,0MB) und viel weniger Dateien enthält (1448 / 3321).
Vielleicht hat jemand eine Erklärung dafür.Bin daneben damit beschäftigt auf ein anderer Rechner mit dem 2022 Installer IOBroker zu installieren. Der Anfang geht gut.
Melde mich wenn ich etwas herausgefunden habe. -
@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.