Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Exec führt .sh nicht aus

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    18
    1
    702

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.0k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.3k

Exec führt .sh nicht aus

Scheduled Pinned Locked Moved Skripten / Logik
14 Posts 8 Posters 4.1k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Ralla66R Offline
    Ralla66R Offline
    Ralla66
    Most Active
    wrote on last edited by
    #1

    Leider renne ich als Newbie vor die Wand.

    Habe viel gelesen komme aber nicht so richtig weiter.

    Bin seit 6 Wochen dabei, alles rennt bis auf:

    Das Problem ist eine .sh per exec im Script auszuführen.

    Config ist Raspberry 2 mit Stretch von November 2017, node ist 6.13.1.

    Lxterminal ist 0.3.0

    Aufgabenstellung ist:

    Per VIS Button das LXterminal zu öffnen, dann den VLC Player zu öffnen und einen Streampfad von der Dreambox zu übergeben.

    Dazu habe ich eine Playertest.sh angelegt mit folgendem Inhalt:

    #!/bin/bash

    echo VLC Player mit LXterminal starten und Stream Dreambox einfügen

    lxterminal –command cvlc http://Benutzer:PW@192.168.2.111:8001/1 ... 0000:0:0:0:

    Diese Datei liegt in /opt/iobroker, Rechte habe ich mit chmod auf 777 gesetzt.

    Auf dem Raspi per Remote und Klick auf die Datei .sh wird diese mit Ausführen auch ausgeführt.

    LXterminal öffnet sich, VLC startet, Stream wird übergeben, TV Programm ist zu sehen.

    Der Versuch das mit Blockly oder Javascript/js auszuführen schlug fehl.( siehe Bild )

    Dann habe ich die Datei kopiert/eingefügt nach Home/pi auch kein Erfolg.

    Unter Instanzen im Javascript.0 ist Erlaube das Kommando "exec": der Haken gesetzt.

    Zu Zeile 5, wenn ich hier reboot Eingebe wird exec ausgeführt.

    Heißt der Raspi startet neu, alles gut.

    Also ist die Syntax von Zeile 5 nicht ok für die .sh.

    Probiert habe ich,

    /opt/iobroker/Playertest.sh

    bash /opt/iobroker/Playertest.sh

    sudo bash /opt/iobroker/Playertest.sh

    Es scheint so als ob ein Kommando benötigt wird das den Pfad aufruft und diesen ausführt.

    Als Anfänger echt schwer.

    Hat jemand eine Idee ?
    5230_blockly.jpg
    5230_js.jpg

    1 Reply Last reply
    0
    • eumatsE Offline
      eumatsE Offline
      eumats
      wrote on last edited by
      #2

      Ich habe zwar nicht viel Erfahrung mit der exec Funktion, aber wenn ich das richtig sehe besteht dein Skript nur als effektiv einem Kommando. Füge das Kommando doch mal in Blocky ein.

      1 Reply Last reply
      0
      • F Offline
        F Offline
        FrY
        wrote on last edited by
        #3

        Das Topic ist zwar etwas älter, aber ich scheitere genau an der selben Stelle. Alles, was ich ausführe (per exec) funktioniert, ein Aufruf eines .sh Scripts funktioniert beim besten Willen nicht.

        Führe ich den Command auf der Shell aus, funktioniert er - nur irgendwie scheint der Adapter da irgendwo was anders zu machen als erwartet.

        Bin für jeden Rat dankbar!

        1 Reply Last reply
        0
        • H Offline
          H Offline
          homecineplexx
          wrote on last edited by
          #4

          hat das script auch die richtigen options?

          also chmod +x Playertest.sh

          1 Reply Last reply
          0
          • F Offline
            F Offline
            FrY
            wrote on last edited by
            #5

            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
            0
            • HomoranH Do not disturb
              HomoranH Do not disturb
              Homoran
              Global Moderator Administrators
              wrote on last edited by
              #6

              @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

              kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

              1 Reply Last reply
              0
              • M Offline
                M Offline
                Matz
                wrote on last edited by
                #7

                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
                0
                • F Offline
                  F Offline
                  FrY
                  wrote on last edited by
                  #8

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

                  1 Reply Last reply
                  0
                  • F Offline
                    F Offline
                    FrY
                    wrote on last edited by
                    #9

                    Ich habe auf GitHub mal ein Issue angelegt:

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

                    1 Reply Last reply
                    0
                    • M Offline
                      M Offline
                      Matz
                      wrote on last edited by
                      #10

                      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
                      0
                      • M Offline
                        M Offline
                        Matz
                        wrote on last edited by
                        #11

                        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
                        1
                        • F Offline
                          F Offline
                          FrY
                          wrote on last edited by
                          #12

                          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
                          0
                          • F Offline
                            F Offline
                            fraeggle
                            wrote on last edited by
                            #13

                            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
                            0
                            • U Offline
                              U Offline
                              uwe72
                              wrote on last edited by
                              #14

                              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
                              0
                              Reply
                              • Reply as topic
                              Log in to reply
                              • Oldest to Newest
                              • Newest to Oldest
                              • Most Votes


                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              777

                              Online

                              32.5k

                              Users

                              81.6k

                              Topics

                              1.3m

                              Posts
                              Community
                              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                              ioBroker Community 2014-2025
                              logo
                              • Login

                              • Don't have an account? Register

                              • Login or register to search.
                              • First post
                                Last post
                              0
                              • Home
                              • Recent
                              • Tags
                              • Unread 0
                              • Categories
                              • Unreplied
                              • Popular
                              • GitHub
                              • Docu
                              • Hilfe