Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [gelöst] Befehl als root ausführen oder Rechte ändern?

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Befehl als root ausführen oder Rechte ändern?

    This topic has been deleted. Only users with topic management privileges can see it.
    • W
      waterchill @Homoran last edited by

      @homoran

      Dann würde das Skript doch gar nicht laufen. Zum Verständnis nochmal:

      homebridge@raspberrypi:/var/homebridge $ /etc/init.d/power_mqtt restart
      Stopping power_mqtt../etc/init.d/power_mqtt: Zeile 51: kill: (17305) - Die Operation ist nicht erlaubt
      ..........
      Not stopped; may still be shutting down or shutdown may have failed
      Unable to stop, will not attempt to start
      homebridge@raspberrypi:/var/homebridge $ sudo /etc/init.d/power_mqtt restart
      Stopping power_mqtt..
      Stopped
      Starting power_mqtt
      homebridge@raspberrypi:/var/homebridge $ 
      
      Homoran 1 Reply Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @waterchill last edited by

        @waterchill sagte in Befehl als root ausführen oder Rechte ändern?:

        Zum Verständnis nochmal:

        dann änder doch mal kill `get_pid` in kill 'get_pid'
        Der Fehler kann sich auch auf den Bereich nach dem kill beziehen, weil der gesamte Befehl so nicht zulässig ist

        W Dr. Bakterius 2 Replies Last reply Reply Quote 0
        • W
          waterchill @Homoran last edited by Homoran

          @homoran

          pi@raspberrypi:/etc/init.d $ sudo ./power_mqtt restart
          Stopping power_mqtt.../power_mqtt: Zeile 51: kill: get_pid: Die Argumente m?ssen Prozess- oder Jobbezeichnungen sein.
          ..........
          Not stopped; may still be shutting down or shutdown may have failed
          Unable to stop, will not attempt to start
          pi@raspberrypi:/etc/init.d $ 
          

          @waterchill sagte in Befehl als root ausführen oder Rechte ändern?:

          kill: get_pid: Die Argumente m?ssen Prozess- oder Jobbezeichnungen sein.

          ich sehe da keine Anführungszeichen
          Mit dem Rest der Fehlermeldung stimme ich überein.

          ist denn 'get_pid' ein Job?

          1 Reply Last reply Reply Quote 0
          • Dr. Bakterius
            Dr. Bakterius Most Active @Homoran last edited by

            @homoran @waterchill Mit get_pid wird wohl die Funktion in Zeile 21 aufgerufen. Das selbe passiert in Zeile 26. Ich bin jetzt auch nicht so der bash-Spezialist, aber braucht man da überhaupt Apostrophe?

            Homoran W 2 Replies Last reply Reply Quote 0
            • Homoran
              Homoran Global Moderator Administrators @Dr. Bakterius last edited by

              @dr-bakterius sagte in Befehl als root ausführen oder Rechte ändern?:

              aber braucht man da überhaupt Apostrophe?

              da bin ich auch nicht so fit und das wäre meine nächste Frage gewesen, aber er meckert ja auch ohne sie

              1 Reply Last reply Reply Quote 0
              • W
                waterchill @Dr. Bakterius last edited by

                @dr-bakterius

                Ich habe das Skript nicht geschrieben. Wer sich die ANleitung durchlesen will, die gibt es hier:

                https://infinityflow.ch/raspberry-pi-ant/#comment-1651

                Wie gesagt das ganze funktioniert ja auch, ich möchte eben nur das Skript zu einer bestimmten Zeit ausführen lassen. Das ist im Prinzip alles.

                Homoran Dr. Bakterius 2 Replies Last reply Reply Quote 0
                • Homoran
                  Homoran Global Moderator Administrators @waterchill last edited by

                  @waterchill sagte in Befehl als root ausführen oder Rechte ändern?:

                  Ich habe das Skript nicht geschrieben. Wer sich die ANleitung durchlesen will, die gibt es hier:

                  finde da das Skript gar nicht erst

                  1 Reply Last reply Reply Quote 0
                  • Dr. Bakterius
                    Dr. Bakterius Most Active @waterchill last edited by

                    @waterchill sagte in Befehl als root ausführen oder Rechte ändern?:

                    ich möchte eben nur das Skript zu einer bestimmten Zeit ausführen lassen.

                    Und warum dann über ioBroker und nicht per cron?

                    W 1 Reply Last reply Reply Quote 0
                    • F
                      fastfoot @Homoran last edited by

                      @homoran sagte in Befehl als root ausführen oder Rechte ändern?:

                      und das ist IMHO falsch

                      für dich zum Lernen 🙂

                      root@iobroker:/opt/iobroker# export test=/bin/bash                                                                                                                                                                                                          
                      root@iobroker:/opt/iobroker# echo basename $test                                                                                                                                                                                                            
                      basename /bin/bash                                                                                                                                                                                                                                          
                      root@iobroker:/opt/iobroker# echo 'basename $test'                                                                                                                                                                                                          
                      basename $test                                                                                                                                                                                                                                              
                      root@iobroker:/opt/iobroker# echo `basename $test`                                                                                                                                                                                                          
                      bash                                                                                                                                                                                                                                                        
                      root@iobroker:/opt/iobroker#              
                      
                      Homoran 1 Reply Last reply Reply Quote 1
                      • Homoran
                        Homoran Global Moderator Administrators @fastfoot last edited by Homoran

                        @fastfoot sagte in Befehl als root ausführen oder Rechte ändern?:

                        für dich zum Lernen

                        Danke!
                        🤔

                        aber das mit dem kill wäre dann:

                        pi@raspberrypi:/opt/iobroker $ echo basename `test`
                        basename
                        
                        F 1 Reply Last reply Reply Quote 0
                        • W
                          waterchill @Dr. Bakterius last edited by

                          @dr-bakterius

                          Bin ich grad dabei. Müsste dann so passen oder?

                          */2 16-20 * * * sudo /etc/init.d/power_mqtt restart
                          

                          Jede zweite Minute von 16-20 Uhr täglich

                          F Dr. Bakterius 2 Replies Last reply Reply Quote 0
                          • liv-in-sky
                            liv-in-sky last edited by

                            was macxht dieses script überhaupt ? installiert das ein bash script als service ? oder lieg ich da falsch

                            W 1 Reply Last reply Reply Quote 0
                            • F
                              fastfoot @Homoran last edited by

                              @homoran sagte in Befehl als root ausführen oder Rechte ändern?:

                              aber das mit dem kill wäre dann:

                              das was zwischen den ticks steht wird ausgeführt und das Ergebnis zurückgegeben. es wird also get_pid ausgeführt und gibt eine PID zurück. Die wird dann gekillt

                              liv-in-sky 1 Reply Last reply Reply Quote 0
                              • liv-in-sky
                                liv-in-sky @fastfoot last edited by

                                @fastfoot aber dieses kill wird mit iobroker ausgeführt (wurde ja so bestimmt im script unter user) - der darf doch das nicht - da müßte kill in die sudoers datei für iobroker ?

                                1 Reply Last reply Reply Quote 0
                                • F
                                  fastfoot @waterchill last edited by

                                  @waterchill der Ansatz mit sudoers war ja gar nicht so schlecht. Kannst du mal das Ergebnis von cat /etc/sudoers.d/iobroker posten?

                                  W 1 Reply Last reply Reply Quote 0
                                  • W
                                    waterchill @liv-in-sky last edited by

                                    @liv-in-sky

                                    Also Grundlegend geht es um folgendes. Das ganze liest über ANT+ aus einem Pulsmesser (Brustgurt) den Puls aus schiebt das in eine mqtt und dann rüber zum iobroker mqtt Server. Damit kann ich bei Rad Indoor übern Puls zwei Xiaomi Lüfter steuern. Je höher der Puls desto mehr Drehzahl. Das ganze läuft auch wunderbar, die Lüfter hab ich so eingestellt, dass pro 10 mehr Puls 10% mehr Speed. Der Haken an der Sache ist, manchmal hängt sich das Skript auf und dann friert er auf einer Herzfrequenzzahl ein z.B. 135 oder so. Dementsprechend laufen die Lüfter dann aber regeln nicht mehr. Abhilfe: Skript Restart. Das gleiche Spielchen beginnt vor dem Sport, man muss das Skript restarten, damit das läuft. Da hab ich mir gedacht warum nicht einfach alle 2 min von 16-20 das Skript automatisch restarten lassen. So braucht man nichts mehr machen. Scheinbar geht das irgendwie in einen Sleepmode oder sowas. Ändern sich die Herzfrequenz häufig z.B. bei einem Workout dass mal langsam und schnell geht hängt sich so gut wie nie auf. Anders schauts aus wenn man konstant mal ne Stunde fährt. Da isses häufiger. Ja perfekt is die Lösung nicht, aber mir fällt nichts anderes ein.

                                    liv-in-sky 1 Reply Last reply Reply Quote 0
                                    • liv-in-sky
                                      liv-in-sky @waterchill last edited by

                                      @waterchill

                                      interessant - könntest du dein script nicht als service installieren auf linux ebene - dann kannst du mit systemctl restart ... usw arbeiten

                                      1 Reply Last reply Reply Quote 0
                                      • W
                                        waterchill @fastfoot last edited by

                                        @fastfoot

                                        Interessant, das Ergebnis ist wie folgt:

                                        pi@raspberrypi:~ $ cat /etc/sudoers.d/iobroker
                                        cat: /etc/sudoers.d/iobroker: Keine Berechtigung
                                        

                                        Ich habe folgendes Eingetragen:

                                        # User privilege specification
                                        root    ALL=(ALL:ALL) ALL
                                        iobroker        ALL= /etc/init.d/power_mqtt
                                        
                                        F 1 Reply Last reply Reply Quote 0
                                        • F
                                          fastfoot @waterchill last edited by

                                          @waterchill sagte in Befehl als root ausführen oder Rechte ändern?:

                                          @fastfoot

                                          Interessant, das Ergebnis ist wie folgt:

                                          pi@raspberrypi:~ $ cat /etc/sudoers.d/iobroker
                                          cat: /etc/sudoers.d/iobroker: Keine Berechtigung
                                          

                                          Ich habe folgendes Eingetragen:

                                          # User privilege specification
                                          root    ALL=(ALL:ALL) ALL
                                          iobroker        ALL= /etc/init.d/power_mqtt
                                          

                                          das sollte man so nicht machen, besser ist eine Datei anzulegen. probiere das cat mit sudo, es geht darum ob das file überhaupt schon existiert

                                          W 1 Reply Last reply Reply Quote 0
                                          • W
                                            waterchill @fastfoot last edited by

                                            @fastfoot

                                            pi@raspberrypi:~ $ sudo cat /etc/sudoers.d/iobroker
                                            iobroker ALL=(ALL) ALL
                                            iobroker ALL=(ALL) NOPASSWD: /sbin/shutdown
                                            iobroker ALL=(ALL) NOPASSWD: /sbin/halt
                                            iobroker ALL=(ALL) NOPASSWD: /sbin/poweroff
                                            iobroker ALL=(ALL) NOPASSWD: /sbin/reboot
                                            iobroker ALL=(ALL) NOPASSWD: /bin/systemctl start
                                            iobroker ALL=(ALL) NOPASSWD: /bin/systemctl stop
                                            iobroker ALL=(ALL) NOPASSWD: /bin/mount
                                            iobroker ALL=(ALL) NOPASSWD: /bin/umount
                                            iobroker ALL=(ALL) NOPASSWD: /usr/bin/systemd-run
                                            iobroker ALL=(ALL) NOPASSWD: /usr/bin/apt-get
                                            iobroker ALL=(ALL) NOPASSWD: /usr/bin/apt
                                            iobroker ALL=(ALL) NOPASSWD: /usr/bin/dpkg
                                            iobroker ALL=(ALL) NOPASSWD: /usr/bin/make
                                            iobroker ALL=(ALL) NOPASSWD: /bin/ping
                                            iobroker ALL=(ALL) NOPASSWD: /sbin/setcap
                                            iobroker ALL=(ALL) NOPASSWD: /usr/bin/vcgencmd
                                            iobroker ALL=(ALL) NOPASSWD: /bin/cat
                                            iobroker ALL=(ALL) NOPASSWD: /bin/df
                                            iobroker ALL=(ALL) NOPASSWD: /sbin/ldconfig
                                            ALL ALL=NOPASSWD: /bin/systemctl start iobroker
                                            ALL ALL=NOPASSWD: /bin/systemctl stop iobroker
                                            ALL ALL=NOPASSWD: /bin/systemctl restart iobroker
                                            ALL ALL=(iobroker) NOPASSWD: /usr/local/bin/node /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js *
                                            
                                            F 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            930
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            7
                                            49
                                            3935
                                            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