Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Exec führt .sh nicht aus

    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

    Exec führt .sh nicht aus

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

      hat das script auch die richtigen options?

      also chmod +x Playertest.sh

      1 Reply Last reply Reply Quote 0
      • F
        FrY last edited by

        Ja, wenn ich es aus der Shell ausführe, funktioniert es. Da javascript unter root läuft (leider), kann ich es auch per sudo ausführen und es funktioniert auch. Habe, wie der Topiceröffner, gefühlt alle Kombinationen durch.

        1 Reply Last reply Reply Quote 0
        • Homoran
          Homoran Global Moderator Administrators last edited by

          @FrY:

          Da javascript unter root läuft (leider), `
          das gilt nur bei alten Installationen und selbst dort nur, wenn ioBroker unter root installiert wurde.

          Spätestens bei der Installation von iobroker mit curl… statt npm install.... läuft alles unter dem User iobroker.

          Gruß

          Rainer

          1 Reply Last reply Reply Quote 0
          • M
            Matz last edited by

            Hallo zusammen,

            ich versuche ebenfalls seit Tagen aus einem Skript mit exec ein shellscript (.sh) auszuführen.

            Das shellscript lässt sich im Terminal ausführen, aus meinem Skript heraus funktionieren mit exec andere Befehle, nur der Aufruf des .sh will einfach nicht klappen:

            exec('/home/pi/test.sh', function(err, stdout, stderr) {

            if (err) {

            log(stderr,'error');

            return;

            }

            Ich wäre ebenfalls für jeden Tipp sehr dankbar 😉

            1 Reply Last reply Reply Quote 0
            • F
              FrY last edited by

              Jaaaaaa, exakt das habe ich auch. Auch ein debug bringt bei mir keinen Output 😞

              1 Reply Last reply Reply Quote 0
              • F
                FrY last edited by

                Ich habe auf GitHub mal ein Issue angelegt:

                https://github.com/ioBroker/ioBroker.ja … issues/292

                1 Reply Last reply Reply Quote 0
                • M
                  Matz last edited by

                  Hallo FrY,

                  ich habe jetzt auch nochmal alles erdenkliche ausprobiert, leider keine Chance 😐

                  Ich habe sogar als letzten Strohhalm meine javascript Instanz auf die aktuellste Version hochgezogen..

                  1 Reply Last reply Reply Quote 0
                  • M
                    Matz last edited by

                    Hallo FRY,

                    ich habe hier im Forum ein Script von "paul53" gefunden. (vielen Dank!)

                    Mit dieser Methode, über SSH, habe ich mir jetzt erstmal geholfen.

                    Funktioniert einwandfrei..

                    Hier die function:

                    function execscript() {
                    var conn = new Client();
                      conn.on('ready', function() {
                        conn.exec(' /home/pi/copyscript.sh', function(err, stream) {
                          if (err) throw err;
                          stream.on('close', function(code, signal) {
                            conn.end();
                          }).on('data', function(data) {
                            log('Ausgabe: ' + data);
                          }).stderr.on('data', function(data) {
                            log('Fehler: ' + data);
                          });
                        });
                      }).connect({
                        host: '192.168.XXX.XXX', // IP eintragen
                        port: 22,
                        username: 'XXXXX',
                        password: 'XXXXX'
                      });
                    }
                    

                    Gruß Matz

                    1 Reply Last reply Reply Quote 1
                    • F
                      FrY last edited by

                      Hallo Matz,

                      besten Dank - habe zeitgleich vom Entwickler eine Rückmeldung bekommen.

                      Das Problem ist der User, der es ausführt. Meine Scripte lagen z. B. als Test in

                      /home/pi

                      /root

                      etc.

                      Der Javascript-Adapter wird aber als user "iobroker" ausgeführt. Lege ich ein Script in /home/iobroker ab, funktioniert es.

                      1 Reply Last reply Reply Quote 0
                      • F
                        fraeggle last edited by

                        Ich hatte z.B. das Problem, das der Reboot und shutdown auch nicht ausgeführt wurde. Folgendes hat in Bezug darauf geholfen.

                        Änderung der /etc/sudoers wie folgt

                        iobroker ALL=(ALL;ALL) ALL

                        iobroker ALL=NOPASSWD:/sbin/reboot

                        iobroker ALL=NOPASSWD:/sbin/shutdown

                        Das Problem trat bei mir nach einer Neuinstallation mit dem curl…... Befehl auf

                        1 Reply Last reply Reply Quote 0
                        • U
                          uwe72 last edited by

                          Bei mir funktioniert den Aufruf des Scriptes wie oben beschrieben:

                          Siehe Screenshot ganz unten:
                          a92b61f0-c9f9-4c68-bdf4-4a0d2f1a49a5-image.png

                          Das Linux-Script ruft ein "Art Programm" auf. Wir kann ich dann im Anschluss per ioBroker-Script weiter auf "der Linux Konsole" weiterarbeiten?

                          In dem konkreten Fall - wenn ich dies unter Linux mache - kann ich eben den Pfad zu einem Bild eingeben.

                          Kann ich die "Session" auf die Linux-Konsole offen halten und "remote" Eingaben machen?

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          850
                          Online

                          31.8k
                          Users

                          80.0k
                          Topics

                          1.3m
                          Posts

                          8
                          14
                          3782
                          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