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.
    • Thomas Braun
      Thomas Braun Most Active @wendy2702 last edited by

      @wendy2702

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

      Setzt das mal auf always.

      wendy2702 1 Reply Last reply Reply Quote 0
      • 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

                          716
                          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