Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. IObroker VM braucht ewig lange zum runterfahren (Grund Redis - Erneut)

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    IObroker VM braucht ewig lange zum runterfahren (Grund Redis - Erneut)

    This topic has been deleted. Only users with topic management privileges can see it.
    • Blackmike
      Blackmike last edited by Blackmike

      So, der erste Post in dem neuen Forum:
      Das Thema war schon in den FAQ, wurde von mir auch gelesen und versucht umzusetzen... aber...

      "Der reboot/shutdown dauert unheimlich lange (+/- 10 Minuten) Bitte in der Datei /etc/init.d/iobroker.sh die beiden Zeilen wie folgt anpassen:

      Required-Start: $network $local_fs $remote_fs redis-server

      Required-Stop:: $network $local_fs $remote_fs redis-server

      Anschließend systemctl daemon-reload ausführen. Anscheinend ist der redis-server beim shutdown sofort weg und iobroker versucht wieterhin seine Stati abzulegen.
      Danke an @sven_76
      Link zum Forum

      Der link ins forum ist übrigens tot.

      IObroker auf redis gestellt: braucht ewig, auf file gestellt geht zügig, also das problem ,was schon mal vorhanden war.
      aber der hier gezeigte Weg geht bei mir irgendwie nicht.

      Grund: die in der FAQ verwiesene Datei /etc/init.d/iobroker.sh gibts bei mir nicht:

      Mein System ist ein frisches:
      Linux VM-IOB64 4.9.0-8-amd64 #1 SMP Debian 4.9.144-3.1 (2019-02-19) x86_64
      The programs included with the Debian GNU/Linux system are free software;
      the exact distribution terms for each program are described in the
      individual files in /usr/share/doc/*/copyright.

      die IObroker Installation auch frisch, gemacht mit dem Installationsscript aus http://www.iobroker.net/docu/?page_id=8323&lang=de

      iobroker start stop etc tuts auch alles perfekt.
      aber wie heist nu das File, wo die redis Abhängigkeit redis-server eingetragen wirds ???

      Danke, Black

      Homoran AlCalzone 2 Replies Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @Blackmike last edited by

        @Blackmike sagte in IObroker VM braucht ewig lange zum runterfahren (Grund Redis - Erneut):

        Mein System ist ein frisches:

        und dann gibt es auch diese Datei nicht mehr, weil iobroker als service läuft.
        Das ist aber schon alles mit meinem (Halb-) Wissen.

        Ich denke @apollon77, @AlCalzone oder @Stabilostick können da wesentlich tiefgreifendere Infos liefern

        1 Reply Last reply Reply Quote 0
        • AlCalzone
          AlCalzone Developer @Blackmike last edited by

          @Blackmike sagte in IObroker VM braucht ewig lange zum runterfahren (Grund Redis - Erneut):

          die IObroker Installation auch frisch, gemacht mit dem Installationsscript aus http://www.iobroker.net/docu/?page_id=8323&lang=de

          Kannst du bitte mal den Inhalt von /opt/iobroker/INSTALLER_INFO.txt posten?

          1 Reply Last reply Reply Quote 0
          • Blackmike
            Blackmike last edited by

            Klar, das ist die Ausgabe:

            root@VM-IOB64:~# cat /opt/iobroker/INSTALLER_INFO.txt
            Installer version: 2019-02-25
            Installation date 2019-02-25
            Platform: linux
            Installed as root
            init system: systemd
            Autostart: systemd
            root@VM-IOB64:~# root@VM-IOB64:~#

            1 Reply Last reply Reply Quote 0
            • Stabilostick
              Stabilostick last edited by Stabilostick

              Also ich würde in der Doku zu systemd anfangen, zu suchen. Stichworte „unit“ und „dependencies“.

              Z.B. hier:
              https://www.freedesktop.org/software/systemd/man/systemd.unit.html

              Parameter z.B.:

              After=dirsrv.target - Will ensure the xxx.service is started after dirsrv.target.

              For robustness, (which will be worth while if you're tinkering with this stuff) you may also wish to include some of the following:

              Requires=dirsrv.target - Activate dirsrv.target when xxx.service is activated. Will cause xxx.service to fail if dirsrv.target fails.

              Wants=dirsrv.target - Activate dirsrv.target when xxx.service is activated. Won't cause xxx.service to fail if dirsrv.target fails.

              BindsTo=dirsrv.target - If dirsrv.target is deactivated, deactivate xxx.service.

              Blackmike 1 Reply Last reply Reply Quote 0
              • Blackmike
                Blackmike @Stabilostick last edited by

                @Stabilostick Da reicht jetzt mein BoardLinux nicht für aus, um da als Anwender in diesen tiefen zu wühlen. Ich finde ja noch nicht mal die Datei, wo und wie der Start von IOBroker definiert ist.

                Als Workaround funktioniert ja file... Nur wird jeder, der Neu nach diesem system installiert, über diesen Redis Effekt stolpern.

                1 Reply Last reply Reply Quote 0
                • AlCalzone
                  AlCalzone Developer last edited by AlCalzone

                  Die Datei die du suchst ist /lib/systemd/system/iobroker.service. Diese sieht aktuell in etwa so aus (ein paar Variablen sind ersetzt):

                  [Unit]
                  Description=ioBroker Server
                  Documentation=http://iobroker.net
                  After=network.target
                  
                  [Service]
                  Type=simple
                  User=$IOB_USER
                  Environment="NODE=\$(which node)"
                  ExecStart=/bin/bash -c '\${NODE} $CONTROLLER_DIR/controller.js'
                  Restart=on-failure
                  
                  [Install]
                  WantedBy=multi-user.target
                  EOF
                  

                  Diese kannst du mit sudo nano /lib/systemd/system/iobroker.service editieren.

                  Es müsste reichen, den ersten Block zu ändern zu:

                  [Unit]
                  Description=ioBroker Server
                  Documentation=http://iobroker.net
                  After=network.target redis.service
                  Wants=redis.service
                  

                  Lass mich bitte wissen, ob das funktioniert. Dann kann ich das in den Installer aufnehmen.

                  Blackmike smartboart 3 Replies Last reply Reply Quote 0
                  • Blackmike
                    Blackmike @AlCalzone last edited by

                    @AlCalzone vielen dank, prüfe ich heute abend... bin immo unterwegs. gebe dann Rückmeldung ob Funktion oder nicht.

                    Danke schon mal, Black

                    1 Reply Last reply Reply Quote 0
                    • Blackmike
                      Blackmike @AlCalzone last edited by Blackmike

                      @AlCalzone So... deine Änderung tuts: Das gab mir ja keine Ruhe, bisschen über VPN gespielt.
                      Ergebnisse:

                      in /lib/systemd/system/iobroker.service eingefügt.

                      gespeichert
                      bei iobroker stop bekam ich eine warnung, dass die datei geändert wurde, und ich systemctl daemon-reload nochmal laufen lassen müsste.

                      getan

                      iobroker setup custom
                      states auf redis geändert

                      iobroker start
                      iobroker json geprüft
                      States sieht da nun so aus:
                      "states": {
                      "type": "redis",
                      "typeComment": "Possible values: 'file' - [port 9000], 'redis' - [port 6379].",
                      "host": "127.0.0.1",
                      "port": 6379,
                      "options": {
                      "auth_pass": null,
                      "retry_max_delay": 15000
                      },
                      "dataDir": "../../iobroker-data/"
                      },

                      steht also auf redis.
                      dann in Proxmox mehrfach die VM herunterfahren, neustart. die VM war mit der änderung von dir binnen 3 Sekunden unten.
                      also erfolgreich. bis jetzt
                      nochmal iobroker.json geprüft, Eintrag steht definitiv auf redis.

                      Härteprobe auch probiert: einen Javascript State manuell den Wert geändert, unmittelbar daraf VM heruntergefahren.
                      Stop zügig. Neustart, javascript wert überprüft, Wert war da. redis fährt wohl mit ordentlichem Dump sauber runter,

                      Wenn du den Installer aber änderst und jemand das system installiert aber kein Redis server bei sich hat, dann kommt das system ja nie hoch dann, oder ?

                      Vllt aber noch die FAQ abändern auf den neuen Weg hier, der dort beschriebene ist ja nicht mehr gültig auf neuem System und der Forenlink da zeigt in Nirvana.

                      Vielen Dank erstmal, Black

                      AlCalzone 1 Reply Last reply Reply Quote 0
                      • AlCalzone
                        AlCalzone Developer @Blackmike last edited by

                        @Blackmike sagte in IObroker VM braucht ewig lange zum runterfahren (Grund Redis - Erneut):

                        Wenn du den Installer aber änderst und jemand das system installiert aber kein Redis server bei sich hat, dann kommt das system ja nie hoch dann, oder ?

                        Ich habe die Dokumentation so verstanden, dass nicht existierende Services beim Start ignoriert werden. Von daher müsste es passen.

                        1 Reply Last reply Reply Quote 0
                        • smartboart
                          smartboart @AlCalzone last edited by smartboart

                          @AlCalzone Also bei mir war die Datei /lib/systemd/system/iobroker.service
                          zwar vorhanden aber leer.
                          Hab dan den Part
                          [Unit]
                          Description=ioBroker Server
                          Documentation=http://iobroker.net
                          After=network.target redis.service
                          Wants=redis.service
                          dennoch eingefügt..Danach zwar sauber rebootet, aber iobroker braucht jetzt start Hilfe.
                          Also iobroker start nach reboot, damit er wieder hoch fährt...Dazu ne idee?
                          Unbenannt.PNG

                          1 Reply Last reply Reply Quote 0
                          • AlCalzone
                            AlCalzone Developer last edited by AlCalzone

                            @smartboart Kannst du deine Datei mal vollständig zeigen? Mir sieht es aus als fehlt da was im Vergleich zum Screenshot.

                            Ansonsten probiere das Fixer-Skript mal aus, das sollte eigentlich alles richten.

                            1 Reply Last reply Reply Quote 0
                            • smartboart
                              smartboart last edited by

                              Habe gestern das image wieder hergestellt und mein backup installiert um zu schauen ob es die Datei überhaupt gibt. /lib/systemd/system/iobroker.service
                              Die Datei ist im ursprünglichen Zustand nicht vorhanden. Habe auch eine ältere Installation auf meinem Tinker. Aber alle Updates durchgeführt. Also alles aktuell ebenfalls iobroker und adapter auf latest.
                              In dem Zustand funktioniert alles tadellos. Nur der langsame reboot und shutdown nach umstellung auf redis im Multihostsystem...Muss die datei acuh in älteren installationen vorhanden sein? Ist das Fixer script nicht nur für Installationen nach der neuen Anleitung?

                              1 Reply Last reply Reply Quote 0
                              • AlCalzone
                                AlCalzone Developer last edited by

                                Dann hast du wahrscheinlich noch eine init.d-basierte Installation. Öffne mal die Datei /etc/init.d/iobroker.sh mit dem Editor. Dort sollte zu Beginn soetwas stehen:

                                #!/bin/bash
                                ### BEGIN INIT INFO
                                # Provides:          iobroker.sh
                                # Required-Start:    \$network \$local_fs \$remote_fs
                                # Required-Stop:     \$network \$local_fs \$remote_fs
                                # Default-Start:     2 3 4 5
                                # Default-Stop:      0 1 6
                                # Short-Description: starts ioBroker
                                # Description:       starts ioBroker
                                

                                Ändere das zu

                                #!/bin/bash
                                ### BEGIN INIT INFO
                                # Provides:          iobroker.sh
                                # Required-Start:    \$network \$local_fs \$remote_fs
                                # Required-Stop:     \$network \$local_fs \$remote_fs
                                # Should-Start:      redis-server
                                # Should-Stop:       redis-server
                                # Default-Start:     2 3 4 5
                                # Default-Stop:      0 1 6
                                # Short-Description: starts ioBroker
                                # Description:       starts ioBroker
                                

                                (also die beiden Zeilen mit redis-server einfügen).

                                smartboart 2 Replies Last reply Reply Quote 0
                                • apollon77
                                  apollon77 last edited by

                                  @AlCalzone Sollte der installations-Fixer das nicht fixen?

                                  Homoran AlCalzone 2 Replies Last reply Reply Quote 0
                                  • Homoran
                                    Homoran Global Moderator Administrators @apollon77 last edited by

                                    @apollon77
                                    Aber nur bei neuen Installationen.

                                    @smartboart sagte in IObroker VM braucht ewig lange zum runterfahren (Grund Redis - Erneut):

                                    Ist das Fixer script nicht nur für Installationen nach der neuen Anleitung?

                                    Die gerade von @AlCalzone gepostete Anleitung gilt für npm instal... Installationen

                                    1 Reply Last reply Reply Quote 0
                                    • AlCalzone
                                      AlCalzone Developer @apollon77 last edited by

                                      @apollon77 Ja sollte er, aber er ersetzt vermutlich die init.d mit systemd. Die schnelle Lösung für @smartboart sind die beiden Zeilen.
                                      Vermutlich lohnt sich dennoch ein Backup + Fixer.

                                      1 Reply Last reply Reply Quote 0
                                      • apollon77
                                        apollon77 last edited by

                                        @AlCalzone dann im Fixer immer auch die anderen init-System Files löschen Und nur das relevante neue anlegen?

                                        1 Reply Last reply Reply Quote 0
                                        • AlCalzone
                                          AlCalzone Developer last edited by

                                          Wird schon längst so gemacht 🙂

                                          1 Reply Last reply Reply Quote 0
                                          • smartboart
                                            smartboart @AlCalzone last edited by

                                            @AlCalzone said in IObroker VM braucht ewig lange zum runterfahren (Grund Redis - Erneut):

                                            Should-Start: redis-server

                                            Should-Stop: redis-server

                                            vielen Lieben Dank für den Tipp...werde ich am WE mal ausprobieren....
                                            Unbenannt.PNG

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            793
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            abhängigkeit redis-server
                                            7
                                            31
                                            1743
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo