Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Gelöst]Python prozess wird nach Zeit X mehrfach ausgeführt.

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Gelöst]Python prozess wird nach Zeit X mehrfach ausgeführt.

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

      @bananajoe hi und danke für deine Info.

      Ich passe den Service mal an und beobachte.

      Kann aber erst am Wochenende schauen da ich jetzt unterwegs bin.

      1 Reply Last reply Reply Quote 0
      • BananaJoe
        BananaJoe Most Active @wendy2702 last edited by

        @wendy2702 was beim Skript so beim mehrmaligen anschauen blöd sein könnte, ist das es beim Start eine MQTT Verbindung zum MQTT Broker aufbaut (Zeile 79 bis 83).
        Erhält das Skript den Stopp-Befehl, so wird die Verbindung wieder abgebaut.
        Ich sehe nichts was die Verbindung zur Laufzeit prüft, danach wird in der Hauptschleife nur noch gesendet.
        Ob das wirklich ein Problem ist, weis ich aber nicht (oder ob der paho.mqtt.client das händelt).

        wendy2702 1 Reply Last reply Reply Quote 0
        • wendy2702
          wendy2702 @Thomas Braun last edited by

          @thomas-braun sagte in Python prozess wird nach Zeit X mehrfach ausgeführt.:

          @wendy2702

          So aus dem Stehgreif würde ich behaupten, das hängt mit der fehlenden Angabe zum Restart zusammen.

          Setzt das mal auf always.

          Ok.

          Das hat @BananaJoe ja auch drin stehen.

          Mal meinen Sohn antriggern ob der das schnell ändern kann.

          1 Reply Last reply Reply Quote 0
          • wendy2702
            wendy2702 @BananaJoe last edited by

            @bananajoe sagte in Python prozess wird nach Zeit X mehrfach ausgeführt.:

            @wendy2702 was beim Skript so beim mehrmaligen anschauen blöd sein könnte, ist das es beim Start eine MQTT Verbindung zum MQTT Broker aufbaut (Zeile 79 bis 83).
            Erhält das Skript den Stopp-Befehl, so wird die Verbindung wieder abgebaut.
            Ich sehe nichts was die Verbindung zur Laufzeit prüft, danach wird in der Hauptschleife nur noch gesendet.
            Ob das wirklich ein Problem ist, weis ich aber nicht (oder ob der paho.mqtt.client das händelt).

            Das habe ich dank KI auch erfahren aber kann mir nicht vorstellen das es zu mehreren Prozessen führen kann.

            Bin aber auch kein Informatiker etc.

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

              So,

              Hatte vor einigen Tagen den Service geändert:

              
              Unit]
              Description=Felicity Abfrage  service
              After=network-online.target
              
              [Service]
              Type=simple
              ExecStart=/usr/bin/python /home/mirko/felicityBMSscript/BMSsnippet_iob_leon.py
              SyslogIdentifier=felictyabfrage
              StandardOutput=syslog
              StandardError=syslog
              Restart=always
              
              [Install]
              WantedBy=multi-user.target
              
              
              

              Heute läuft der Python Prozeß wieder mehrfach.

              Sieht hier noch wer einen Fehler oder hat einen anderen Tipp?

              BananaJoe 1 Reply Last reply Reply Quote 0
              • BananaJoe
                BananaJoe Most Active @wendy2702 last edited by BananaJoe

                @wendy2702 kannst du mal ein

                /usr/bin/python --version
                

                aufrufen? Und ich hoffe da kommt nicht 2.7 ...

                Und wenn der wieder "mehrfach" läuft, gib bitte diesen Befehl ein und poste hier die Ausgabe:

                ps -aux |grep python
                

                und beim Service hänge unter das Restart dann auch noch diese Zeile:

                RestartSec=30
                

                damit er ein wenig Pause macht vor einem Neustart.

                Ich war schon drauf und dran das Skript anzupassen - aber ich könnte es bei mir ja nicht testen.
                Blöd ist, das das Skript ja nicht wirklich auf Start/Stop-Anforderungen reagiert.

                Hier hat jemand eine schöne Idee dafür vorgeschlagen: https://oxylabs.io/blog/python-script-service-guide
                Bei der Lösung reagiert das Skript selbst auf die Anforderungen.
                Meine Python-Dienste nutzen alle Flask, ich vermute das hat das schon eingebaut.

                wendy2702 1 Reply Last reply Reply Quote 0
                • wendy2702
                  wendy2702 @BananaJoe last edited by

                  @bananajoe Die Python Version ist:

                  Python 3.11.2
                  

                  Service werde ich erweitern und mir den Link mal anschauen.

                  Danke!

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

                    @bananajoe sagte in Python prozess wird nach Zeit X mehrfach ausgeführt.:

                    ps -aux |grep python

                    Jetzt dachte ich nach einfügen der Restart Zeit würde es funktionieren aber dann sehe ich heute wieder mehrere Prozesse.

                    @BananaJoe hier mal die gewünschte Ausgabe

                    mirko@felicity:~ $ ps -aux |grep python
                    root        1833  0.5  2.7 109996 25984 ?        Ssl  Mar04  31:55 /usr/bin/python /home/mirko/felicityBMSscript/BMSsnippet_iob_leon.py
                    mirko       2482  0.0  0.1   2320  1280 ?        Ss   Mar04   0:00 /bin/sh -c /usr/bin/python /home/mirko/felicityBMSscript/BMSsnippet_iob_leon.py
                    mirko       2483  0.5  2.7 109996 25996 ?        Sl   Mar04  28:54 /usr/bin/python /home/mirko/felicityBMSscript/BMSsnippet_iob_leon.py
                    mirko       4229  0.0  0.1   2320  1280 ?        Ss   Mar05   0:00 /bin/sh -c /usr/bin/python /home/mirko/felicityBMSscript/BMSsnippet_iob_leon.py
                    mirko       4230  0.4  2.6 109020 25044 ?        Sl   Mar05  20:35 /usr/bin/python /home/mirko/felicityBMSscript/BMSsnippet_iob_leon.py
                    mirko       5979  0.0  0.1   2320  1280 ?        Ss   Mar06   0:00 /bin/sh -c /usr/bin/python /home/mirko/felicityBMSscript/BMSsnippet_iob_leon.py
                    mirko       5980  0.4  2.6 108996 25032 ?        Sl   Mar06  12:39 /usr/bin/python /home/mirko/felicityBMSscript/BMSsnippet_iob_leon.py
                    mirko       7714  0.0  0.1   2320  1280 ?        Ss   Mar07   0:00 /bin/sh -c /usr/bin/python /home/mirko/felicityBMSscript/BMSsnippet_iob_leon.py
                    mirko       7715  0.4  2.6 108996 24892 ?        Sl   Mar07   5:21 /usr/bin/python /home/mirko/felicityBMSscript/BMSsnippet_iob_leon.py
                    mirko       9345  0.0  0.2   6088  1920 pts/0    S+   14:53   0:00 grep --color=auto python
                    
                    
                    BananaJoe 1 Reply Last reply Reply Quote 0
                    • BananaJoe
                      BananaJoe Most Active @wendy2702 last edited by

                      @wendy2702 der läuft aber ja 1x als root und 9x als mirko in 2 verschiedenen Varianten

                      Der als root ist vermutlich der richtige, der hat auch die niedrigste Prozessnummer.
                      Also du hast irgendwo noch etwas was weitere Instanzen startet auf 2 wegen.
                      Da iobroker nicht der Besitzer ist, der vermutlich nicht.

                      was steht denn in den Cronjobs von mirko?

                      crontab -e
                      
                      wendy2702 1 Reply Last reply Reply Quote 1
                      • wendy2702
                        wendy2702 @BananaJoe last edited by

                        @bananajoe Bist mein Held für heute.

                        Es gab von den ersten Versuchen noch einen crontab den ich komplett vergessen hatte.

                        Denke mit löschen des Eintrags sollte mein Problem jetzt gelöst sein.

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        935
                        Online

                        31.7k
                        Users

                        79.7k
                        Topics

                        1.3m
                        Posts

                        3
                        13
                        359
                        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