NEWS
[Erledigt] Test ioBroker Windows Service
-
Hallo zusammen,
es gibt derzeit noch ein paar Probleme unter Windows im Zusammenhang mit dem Windows Service. Insbesondere das Beenden von ioBroker funktioniert deshalb nicht zuverlässig.
Bisher verwendet die Installationsroutine das npm Modul node-windows, das wiederum auf einem Wrapper mit dem Namen WinSW basiert. Leider werden beide Module offensichtlich nicht mehr weiter gepflegt, von WinSW gibt es aber eine "neue" Version, die einige Unzulänglichkeiten behebt, so auch die ioBroker Probleme.
Da node-windows nicht mehr länger gepflegt wird, ist die Idee, WinSW direkt zu verwenden. Ich habe dafür eine Anpassung vorbereitet und würde euch bitten, diese zu testen.
Dafür muss lediglich eine Exe-Datei und ein Scrip heruntergeladen werden. Anschließend muss das Script ausgeführt werden.
Am Einfachsten geht das, indem man aus dem Startmenü den die ioBroker Cmd Line startet und folgende Befehle eingibt:
iob stop node uninstall.js curl -L --output .\install2.js --url https://raw.githubusercontent.com/Gaspode69/ioBroker/master/install/windows/install.js curl -L --output .\install\windows\WinSW3.exe --url https://github.com/Gaspode69/ioBroker/raw/master/install/windows/WinSW3.exe node install2.jsBitte versucht das mal und beobachtet anschließend das Verhalten von ioBroker. Funktioniert noch alles wie vorher? Ist das Shutdown-Verhalten jetzt in Ordnung?
Um auf den Originalzustand zurück zu kommen, folgende Anweisungen ausführen:
node uninstall node installAktuelle Einschränkung: Es wird mit dem aktuellen Script nur Windows 64 Bit unterstützt. Die 32 Bit Variante ist nicht berücksichtigt. Ich würde annehmen, dass das inzwischen ausreichend ist, wenn das jemand anders sieht, bitte hier melden.
Edit:
Das WinSW Executable kommt übrigens von hier:
https://github.com/winsw/winsw/releases/tag/v3.0.0-alpha.11@gaspode Heute installiert, sieht auf den ersten Blick sehr gut aus.
IoBroker startet ohne erkennbare Fehler, sowohl von der CMD mit "iob start" auch beim starten von Windows. Beenden geht auch, das werde ich aber noch weiter beobachten.
Auch ein weitere Fehler wurde mit dem Patch anscheinend ausgemerzt. Es wird nach beenden von ioBroker und dann ein "iob status" direkt ausgegeben, dass ioBroker nicht mehr läuft. Zuvor war es so, dass der erste "iob status" noch ausgab das ioBroker läuft erst der zweite "iob status" die korrekte Meldung ausgab.
Ich werde weiter beobachten.
Danke. -
@gaspode Heute installiert, sieht auf den ersten Blick sehr gut aus.
IoBroker startet ohne erkennbare Fehler, sowohl von der CMD mit "iob start" auch beim starten von Windows. Beenden geht auch, das werde ich aber noch weiter beobachten.
Auch ein weitere Fehler wurde mit dem Patch anscheinend ausgemerzt. Es wird nach beenden von ioBroker und dann ein "iob status" direkt ausgegeben, dass ioBroker nicht mehr läuft. Zuvor war es so, dass der erste "iob status" noch ausgab das ioBroker läuft erst der zweite "iob status" die korrekte Meldung ausgab.
Ich werde weiter beobachten.
Danke.@UweRLP
Vielen Dank fürs Testen und dein Feedback.@uwerlp said in Test ioBroker Windows Service:
Auch ein weitere Fehler wurde mit dem Patch anscheinend ausgemerzt. Es wird nach beenden von ioBroker und dann ein "iob status" direkt ausgegeben, dass ioBroker nicht mehr läuft.
Ja, schrub ich ja schon auf Github, dass diese Korrektur auch diesen Fehler behebt.
-
Ich musste noch eine kleine Anpassung vornehmen, damit es keine Probleme im Zusammenspiel mit dem GUI Installer gibt.
Um zukünftige Probleme zu vermeiden, sollte, wer bereits den neuen Service installiert hat, nochmals folgende Befehlssequenz ausführen:iob stop node uninstall.js curl -L --output .\install2.js --url https://raw.githubusercontent.com/Gaspode69/ioBroker/master/install/windows/install.js node install2.js -
Ich musste noch eine kleine Anpassung vornehmen, damit es keine Probleme im Zusammenspiel mit dem GUI Installer gibt.
Um zukünftige Probleme zu vermeiden, sollte, wer bereits den neuen Service installiert hat, nochmals folgende Befehlssequenz ausführen:iob stop node uninstall.js curl -L --output .\install2.js --url https://raw.githubusercontent.com/Gaspode69/ioBroker/master/install/windows/install.js node install2.js@gaspode sagte in Test ioBroker Windows Service:
Ich musste noch eine kleine Anpassung vornehmen, damit es keine Probleme im Zusammenspiel mit dem GUI Installer gibt.
Um zukünftige Probleme zu vermeiden, sollte, wer bereits den neuen Service installiert hat, nochmals folgende Befehlssequenz ausführen:iob stop node uninstall.js curl -L --output .\install2.js --url https://raw.githubusercontent.com/Gaspode69/ioBroker/master/install/windows/install.js node install2.jsIm 1.Post steht der Befehl jetzt auch drin.
Trotzdem nochmal ausführen ?
Habe gerade erst installiert -
@gaspode sagte in Test ioBroker Windows Service:
Ich musste noch eine kleine Anpassung vornehmen, damit es keine Probleme im Zusammenspiel mit dem GUI Installer gibt.
Um zukünftige Probleme zu vermeiden, sollte, wer bereits den neuen Service installiert hat, nochmals folgende Befehlssequenz ausführen:iob stop node uninstall.js curl -L --output .\install2.js --url https://raw.githubusercontent.com/Gaspode69/ioBroker/master/install/windows/install.js node install2.jsIm 1.Post steht der Befehl jetzt auch drin.
Trotzdem nochmal ausführen ?
Habe gerade erst installiertDas der Befehl "iob status" erst beim zweiten mal meldet das iob nicht mehr läuft, war bei mir auch so.
Ich hab das aber als normal empfunden da erst danach auch die Dateien "objects.jsonl" und "states.jsonl" gespeichert wurden.
Könnte es da nicht Probleme geben wenn die beiden Dateien noch nicht vollständig gespeichert wurden und der Befehl "iob status" aber schon meldet das iob beendet wurde ? -
Das der Befehl "iob status" erst beim zweiten mal meldet das iob nicht mehr läuft, war bei mir auch so.
Ich hab das aber als normal empfunden da erst danach auch die Dateien "objects.jsonl" und "states.jsonl" gespeichert wurden.
Könnte es da nicht Probleme geben wenn die beiden Dateien noch nicht vollständig gespeichert wurden und der Befehl "iob status" aber schon meldet das iob beendet wurde ? -
@UweRLP
Vielen Dank fürs Testen und dein Feedback.@uwerlp said in Test ioBroker Windows Service:
Auch ein weitere Fehler wurde mit dem Patch anscheinend ausgemerzt. Es wird nach beenden von ioBroker und dann ein "iob status" direkt ausgegeben, dass ioBroker nicht mehr läuft.
Ja, schrub ich ja schon auf Github, dass diese Korrektur auch diesen Fehler behebt.
@gaspode sagte in Test ioBroker Windows Service:
Ja, schrub ich ja schon auf Github, dass diese Korrektur auch diesen Fehler behebt.
Ah, darum ging es dort :blush:
Ich musste noch eine kleine Anpassung vornehmen, damit es keine Probleme im Zusammenspiel mit dem GUI Installer gibt.
Um zukünftige Probleme zu vermeiden, sollte, wer bereits den neuen Service installiert hat, nochmals folgende Befehlssequenz ausführen:iob stop node uninstall.js curl -L --output .\install2.js --url https://raw.githubusercontent.com/Gaspode69/ioBroker/master/install/windows/install.js node install2.jsOk, ist installiert, konnte jetzt auf die Schnelle keine Veränderung feststellen.
-
@gaspode sagte in Test ioBroker Windows Service:
Ja, schrub ich ja schon auf Github, dass diese Korrektur auch diesen Fehler behebt.
Ah, darum ging es dort :blush:
Ich musste noch eine kleine Anpassung vornehmen, damit es keine Probleme im Zusammenspiel mit dem GUI Installer gibt.
Um zukünftige Probleme zu vermeiden, sollte, wer bereits den neuen Service installiert hat, nochmals folgende Befehlssequenz ausführen:iob stop node uninstall.js curl -L --output .\install2.js --url https://raw.githubusercontent.com/Gaspode69/ioBroker/master/install/windows/install.js node install2.jsOk, ist installiert, konnte jetzt auf die Schnelle keine Veränderung feststellen.
@uwerlp said in Test ioBroker Windows Service:
Ok, ist installiert, konnte jetzt auf die Schnelle keine Veränderung feststellen.
Geht auch nur darum, dass das Service Executable jetzt durchgehend klein geschrieben ist, so wie das auch in der alten Variante der Fall ist.
@bernd1967 said in Test ioBroker Windows Service:
Im 1.Post steht der Befehl jetzt auch drin.
Trotzdem nochmal ausführen ?
Habe gerade erst installiertNein, wer erst jetzt installiert, braucht das nicht nochmal zu machen.
-
Ein Haar in der Suppe habe ich jetzt doch noch gefunden:
Der Restart Button im Admin unter "Hosts" funktioniert nicht. ioBroker wird beendet, aber nicht neu gestartet. Aus irgendeinem Grund, den ich noch nicht verstanden habe, kann das Restart Script nicht gestartet werden. Bin am Suchen, woran es liegt und wie man das beheben kann. Wird aber wohl eine Weile dauern. -
Mittlerweile sind die Änderungen scharf geschaltet. Danke an @apollon77 für die Unterstützung und das Vertrauen. :D
Was heißt das jetzt?
- Neuinstallationen werden ab sofort mit dem neuen Service Wrapper Ansatz installiert.
- Vorhandene Installationen können per Fixer auf den neuen Ansatz umgestellt werden. Ich empfehle das Auführen des Fixers mit Hilfe des ioBroker Windows Installers
Sollten Probleme auftauchen, bitte hier melden!
-
Mittlerweile sind die Änderungen scharf geschaltet. Danke an @apollon77 für die Unterstützung und das Vertrauen. :D
Was heißt das jetzt?
- Neuinstallationen werden ab sofort mit dem neuen Service Wrapper Ansatz installiert.
- Vorhandene Installationen können per Fixer auf den neuen Ansatz umgestellt werden. Ich empfehle das Auführen des Fixers mit Hilfe des ioBroker Windows Installers
Sollten Probleme auftauchen, bitte hier melden!
@gaspode
Ok, neuer Installer ist da nicht nötig, macht der Fixer? -
@sigi234 sagte in Test ioBroker Windows Service:
@gaspode
Ok, neuer Installer ist da nicht nötig, macht der Fixer?Das habe ich jetzt nicht verstanden. Der Fixer läuft auf meiner historichen Installation ja nicht durch. Andererseits habe ich auch kein Problem mit dem Dienst, das startet alles wie es soll (bisher).
Ich würde halt bei irgendwelchen Updates die jeweils neueste Installer Version verweden. Hat beim letzten Mal auch hervorragend funktioniert (nochmals herzichen Dank dafür)! -
@sigi234 sagte in Test ioBroker Windows Service:
@gaspode
Ok, neuer Installer ist da nicht nötig, macht der Fixer?Das habe ich jetzt nicht verstanden. Der Fixer läuft auf meiner historichen Installation ja nicht durch. Andererseits habe ich auch kein Problem mit dem Dienst, das startet alles wie es soll (bisher).
Ich würde halt bei irgendwelchen Updates die jeweils neueste Installer Version verweden. Hat beim letzten Mal auch hervorragend funktioniert (nochmals herzichen Dank dafür)!@klassisch said in Test ioBroker Windows Service:
Das habe ich jetzt nicht verstanden. Der Fixer läuft auf meiner historichen Installation ja nicht durch.
Du bist ja auch ein "Sonderfall". ;)
Auf "normalen" Systemen läuft der Fixer ja problemlos und macht, was er soll.Der Fixer legt seit gestern u.a. nun auch den Service neu an und verwendet dafür den neuesten Wrapper, der ein paar Probleme beim Beenden von ioBroker behebt. Wenn die dich nicht stören, dann hast du ja auch keinen Bedarf. Ansonsten, kannst du das auch manuell machen. Melde dich bei Interesse einfach, dann mach ich ne kurze Anleitung.
-
Mittlerweile sind die Änderungen scharf geschaltet. Danke an @apollon77 für die Unterstützung und das Vertrauen. :D
Was heißt das jetzt?
- Neuinstallationen werden ab sofort mit dem neuen Service Wrapper Ansatz installiert.
- Vorhandene Installationen können per Fixer auf den neuen Ansatz umgestellt werden. Ich empfehle das Auführen des Fixers mit Hilfe des ioBroker Windows Installers
Sollten Probleme auftauchen, bitte hier melden!
-
@gaspode
Hab das mal so gemacht wie Du vorgeschlagen hast.
Die "ioBrokerInstaller.exe" hat immer noch die Version 3.3.0 mit 1758KB ?
Oder wurde die gar nicht geändert?@bernd1967 said in Test ioBroker Windows Service:
Hab das mal so gemacht wie Du vorgeschlagen hast.
Ich glaube, da hab ich mich irgendwo missverständlich ausgedrückt. Du startest den Windows GUI Installer 3.3.0 (der hat sich nicht verändert) und wählst im weiteren Verlauf "ioBroker Fixer ausführen". Nach Abschluss ist der Service dann umgestellt.
-
@bernd1967 said in Test ioBroker Windows Service:
Hab das mal so gemacht wie Du vorgeschlagen hast.
Ich glaube, da hab ich mich irgendwo missverständlich ausgedrückt. Du startest den Windows GUI Installer 3.3.0 (der hat sich nicht verändert) und wählst im weiteren Verlauf "ioBroker Fixer ausführen". Nach Abschluss ist der Service dann umgestellt.
@gaspode
Okay, ich ging davon aus das Du ein neuen Compiler für dein Programm hast.
Danke für die Info.Hab mal den Host neustart probiert.
Bei einem Testsystem klappte es gut.
Bei meinem Produktivsystem konnte ich die Admin Oberfläche nicht mehr erreichen:
"iob status" im command Fenster ergab folgenden Fehler:Unable to increase LUA script timeout: Connection is closed. Cannot determine Set feature status: Connection is closed. Connection is closed. Uncaught Rejection: Error: States DB is not allowed to start in the current Multihost environment at Redis.<anonymous> (file:///C:/Software/ioBroker/node_modules/@iobroker/db-states-redis/build/esm/lib/states/statesInRedisClient.js:477:23) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) Server Cannot start inMem-objects on port 9001: Failed to lock DB file "C:\Software\ioBroker\iobroker-data\objects.jsonl"!Hab dann iob neu gestartet, alles wieder i.o.
-
@bernd1967 said in Test ioBroker Windows Service:
Bei meinem Produktivsystem konnte ich die Admin Oberfläche nicht mehr erreichen:
Poste mal das Update Logfile, bitte.
-
@bernd1967 said in Test ioBroker Windows Service:
Bei meinem Produktivsystem konnte ich die Admin Oberfläche nicht mehr erreichen:
Poste mal das Update Logfile, bitte.