Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. Frage zu: adapter.on('unload', function (callback) {…})

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Frage zu: adapter.on('unload', function (callback) {…})

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

      Hallo zusammen,

      stehe gerade etwas auf der Leitung. Kann mir jemand erklären wann

      adapter.on('unload', function (callback) {...});
      

      tatsächlich aufgerufen wird. Bei mir eigentlich nie mit js-controller V. 1.03 und win32 als BS. Ich wollte in der Funktion einige Aufräumarbeiten durchführen und war davon ausgegangen, dass sowohl beim Deaktivieren der Instanz, als auch beim Löschen selbiger ein 'unload' event erzeugt und die Funktion aufgerufen wird. Hab dann mal als Referenzadapter den Sonos-Adapter installiert, aber auch hier wird ein

      adapter.log.info('terminating');
      

      nie geloggt, also die Funktion nicht aufgerufen. Ist das eventuell noch ein Bug?

      Habe gerade festgestellt: auf meiner Produktionsumgebung mit linux als BS läuft es. Scheint also ein win32 Problem zu sein. Vielleicht hat ja trotzdem jemand eine Idee.

      Ergänzung: Habe jetzt die selbe Nodeversion (v4.8.0) wie unter Linux installiert (da funktioniert es ja). Effekt ist aber identisch. Ich habe mittlerweile die Vermutung, dass sich hier ein win32 ioBroker anders verhält wie unter linux, d.h. der registrierte callback() für das unload-Event nie aufgerufen wird. Könnte das jemand von den Entwicklern (Bluefox oder apollon77) mal verifizieren, oder sagen wie es geht?

      Grüße

      Carsten

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

        Irgendwie komme ich bei dem Thema alleine nicht weiter. Vielleicht findet sich ja jemand, der auch node.js/win32 fährt und z.B. bei dem sonos-Adapter mal versucht den Fehler nachzustellen, also Instanz deaktiviert und im Log nachschaut, ob

        adapter.log.info('terminating');
        

        ausgeführt wurde.

        Danke

        Carsten

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

          Bin ich denn wirklich der Einzige, der das Problem hat?

          Grüße

          Carsten

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

            @Bluefox: Was meinst Du? Kannst Du hier Licht ins Dunkel bringen?

            1 Reply Last reply Reply Quote 0
            • arteck
              arteck Developer Most Active last edited by

              ich verstehe auch nur Bahnhof

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

                @carsten04:

                Hallo zusammen,

                stehe gerade etwas auf der Leitung. Kann mir jemand erklären wann

                adapter.on('unload', function (callback) {...});
                

                tatsächlich aufgerufen wird. Bei mir eigentlich nie mit js-controller V. 1.03 und win32 als BS. Ich wollte in der Funktion einige Aufräumarbeiten durchführen und war davon ausgegangen, dass sowohl beim Deaktivieren der Instanz, als auch beim Löschen selbiger ein 'unload' event erzeugt und die Funktion aufgerufen wird. Hab dann mal als Referenzadapter den Sonos-Adapter installiert, aber auch hier wird ein

                adapter.log.info('terminating');
                

                nie geloggt, also die Funktion nicht aufgerufen. Ist das eventuell noch ein Bug?

                Habe gerade festgestellt: auf meiner Produktionsumgebung mit linux als BS läuft es. Scheint also ein win32 Problem zu sein. Vielleicht hat ja trotzdem jemand eine Idee.

                Ergänzung: Habe jetzt die selbe Nodeversion (v4.8.0) wie unter Linux installiert (da funktioniert es ja). Effekt ist aber identisch. Ich habe mittlerweile die Vermutung, dass sich hier ein win32 ioBroker anders verhält wie unter linux, d.h. der registrierte callback() für das unload-Event nie aufgerufen wird. Könnte das jemand von den Entwicklern (Bluefox oder apollon77) mal verifizieren, oder sagen wie es geht?

                Grüße

                Carsten `
                Unter Linux sind die Signale wie 'SIGINT' oder 'SIGTERM' wirklich da.

                Unter windows werden die vermutlich von node.js simuliert und funktioniert nicht wirklich.

                Um jetzt wirklich dann unload zu erzwingen gibt es WorkAround:

                supportStopInstance

                <url url="https://github.com/ioBroker/ioBroker/blob/master/doc/SCHEMA.md#adapter[quote]common.supportStopInstance-"><link_text text="https://github.com/ioBroker/ioBroker/bl … pInstance-">https://github.com/ioBroker/ioBroker/blob/master/doc/SCHEMA.md#adapter

                common.supportStopInstance- (optional) [true/false] if adapter supports signal stopInstance (messagebox required). The signal will be sent before the stop to the adapter. (used if the problems occured with SIGTERM)

                Falls Adapter dann supportStopInstance und messagebox auf true (im common) setzt, dann wird erst ein Message "stopInstance" an die Instanz geschickt.

                Wenn Adapter diese Meldung bekommt, dann hat der 1 Sekunde Zeit um runter zu gehen. Danach wird der gekillt.

                Ansonsten räumt node.js schon sauber alle Datei und Netzwerk-Deskriptoren auf. Diese Lösung wurde für Serielle Schnittstelle verwendet.</link_text></url>

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

                  Hi Bluefox,

                  das war genau das fehlende Puzzleteil um mein Problem zu lösen. Vielen Dank für den Hinweis und Dein unglaubliches Engagement für ioBroker.

                  Grüße

                  Carsten

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  814
                  Online

                  31.7k
                  Users

                  79.8k
                  Topics

                  1.3m
                  Posts

                  4
                  7
                  2960
                  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