Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Off Topic
  4. Frage zu einem Shell Script (Raspberry)

NEWS

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

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

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.2k

Frage zu einem Shell Script (Raspberry)

Geplant Angeheftet Gesperrt Verschoben Off Topic
6 Beiträge 2 Kommentatoren 486 Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • S Offline
    S Offline
    sugram
    schrieb am zuletzt editiert von
    #1

    Hallo

    Ich hätte da mal eine Frage, evtl. kann mir da jemand weiterhelfen.
    Auf meinem Pi läuft der IoBroker und das HabPanel wird mittels Midori auf einem Display dargestellt.
    Bei einer Änderung, habe ich bisher immer manuell die Midori Session gekillt und neu gestartet.
    Nun war meine Idee, daß ich das direkt über ein Button auf dem HabPAnel machen könnte.

    Ich bin nun schon soweit, daß ich ein php File habe, daß mir auch erfolgreich ein Shellscript ausführt.
    Nun zu meinem Problem:

    Ich habe ein Shellscript (midori-restart.sh) mit folgendem Inhalt:

    sudo kill -9 $(ps -ef | grep midori | grep -v grep | awk '{print$2}') &
    sleep 3
    sudo xinit ./startMidori.sh &
    

    wenn ich das dann mit ./midori-restart.sh aufrufe, wird das auch alles erfolgreich ausgeführt.
    Also Midori Session wird gekillt und anschließend wieder gestartet.

    In dem php script folgendes:

    <?php
    if ($_GET['run']) {
      # This code will run if ?run=true is set.
      #exec("/path/to/name.sh");
      $script = "sudo /home/pi/midori-restart.sh";
      $run=`$script`;
    }
    ?>
    
    <!-- This link will add ?run=true to your URL, myfilename.php?run=true -->
    
    <style type="text/css">
    
    
    a { color: #ffffff; text-decoration: none; }
    
    
    </style>
    
    
    <a href="?run=true">Display restart</a>
    

    Hier wird dann allerdings nur die Midori Session beendet, aber nicht erneut gestartet.

    Das selbe ist dann der Fall wenn ich das Script mit sudo ./midori-restart.sh ausführe, wird ebenfalls nur die Midori Session gekillt, aber nich erneut gestartet.

    Wenn ich in dem php script das sudo weg lasse, wird das Script nicht mehr ausgeführt.

    Kann mir da jemand nen Tipp geben, an was das genau liegt?!

    mickymM 1 Antwort Letzte Antwort
    0
    • S sugram

      Hallo

      Ich hätte da mal eine Frage, evtl. kann mir da jemand weiterhelfen.
      Auf meinem Pi läuft der IoBroker und das HabPanel wird mittels Midori auf einem Display dargestellt.
      Bei einer Änderung, habe ich bisher immer manuell die Midori Session gekillt und neu gestartet.
      Nun war meine Idee, daß ich das direkt über ein Button auf dem HabPAnel machen könnte.

      Ich bin nun schon soweit, daß ich ein php File habe, daß mir auch erfolgreich ein Shellscript ausführt.
      Nun zu meinem Problem:

      Ich habe ein Shellscript (midori-restart.sh) mit folgendem Inhalt:

      sudo kill -9 $(ps -ef | grep midori | grep -v grep | awk '{print$2}') &
      sleep 3
      sudo xinit ./startMidori.sh &
      

      wenn ich das dann mit ./midori-restart.sh aufrufe, wird das auch alles erfolgreich ausgeführt.
      Also Midori Session wird gekillt und anschließend wieder gestartet.

      In dem php script folgendes:

      <?php
      if ($_GET['run']) {
        # This code will run if ?run=true is set.
        #exec("/path/to/name.sh");
        $script = "sudo /home/pi/midori-restart.sh";
        $run=`$script`;
      }
      ?>
      
      <!-- This link will add ?run=true to your URL, myfilename.php?run=true -->
      
      <style type="text/css">
      
      
      a { color: #ffffff; text-decoration: none; }
      
      
      </style>
      
      
      <a href="?run=true">Display restart</a>
      

      Hier wird dann allerdings nur die Midori Session beendet, aber nicht erneut gestartet.

      Das selbe ist dann der Fall wenn ich das Script mit sudo ./midori-restart.sh ausführe, wird ebenfalls nur die Midori Session gekillt, aber nich erneut gestartet.

      Wenn ich in dem php script das sudo weg lasse, wird das Script nicht mehr ausgeführt.

      Kann mir da jemand nen Tipp geben, an was das genau liegt?!

      mickymM Offline
      mickymM Offline
      mickym
      Most Active
      schrieb am zuletzt editiert von mickym
      #2

      @sugram Nun ich bin kein Shell Script Guru - bei sowas ist evtl. @Thomas-Braun ein geeigneter Ansprechpartner.

      Ich würde mal auf folgende Fehler tippen:

      1. Wenn Du das script von irgendeinem Verzeichnis aus startest, dann ist wahrscheinlich das aktuelle Verzeichnis ein anderes und deshalb wird das Skript startMidoir.sh nicht gefunden. Also wäre ggf. eine absolute Pfadangabe oder ein Wechsel in das Verzeichnis sinnvoll.
      2. ggf. würde ich statt in einem Script den Restart auszuführen, auch das Killen des alten Prozesses und den Neustart des Prozesses über startMidort.sh getrennt ausführen.

      Eventuell überprüfen ob die Shellskripts ausführbar sind und eigentlich sollte die 1. Zeile in den Skripts mit dem

      #!/bin/bash

      beginnen.

      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

      S 1 Antwort Letzte Antwort
      0
      • mickymM mickym

        @sugram Nun ich bin kein Shell Script Guru - bei sowas ist evtl. @Thomas-Braun ein geeigneter Ansprechpartner.

        Ich würde mal auf folgende Fehler tippen:

        1. Wenn Du das script von irgendeinem Verzeichnis aus startest, dann ist wahrscheinlich das aktuelle Verzeichnis ein anderes und deshalb wird das Skript startMidoir.sh nicht gefunden. Also wäre ggf. eine absolute Pfadangabe oder ein Wechsel in das Verzeichnis sinnvoll.
        2. ggf. würde ich statt in einem Script den Restart auszuführen, auch das Killen des alten Prozesses und den Neustart des Prozesses über startMidort.sh getrennt ausführen.

        Eventuell überprüfen ob die Shellskripts ausführbar sind und eigentlich sollte die 1. Zeile in den Skripts mit dem

        #!/bin/bash

        beginnen.

        S Offline
        S Offline
        sugram
        schrieb am zuletzt editiert von sugram
        #3

        @mickym

        Es spielt keine Rolle, ob ich das Script so sudo ./midori-restart.sh oder sudo /home/pi/midori-restart.sh ausführe.
        Es wird hierbei nur die midori Session gekillt.
        Ohne dem sudo klappt das Script ja auch einwandfrei.

        Das mit dem getrennt ausführen ist ja so ne Sache, ich möchte das ja über das Display erledigen.
        Wenn ich die midori Session gekillt habe, müsste ich dann auf dem Display auf der Konsole ja wieder einen Befehl eingeben.
        Aber da hängt jetzt keine Tastatur dran und ich wollte das eigentlich auch automatisieren.

        sobald ich in dem script
        #!/bin/bash
        eintrage, geht das ganze nicht mehr, denn das hatte ich am Anfang auch drin.

        S 1 Antwort Letzte Antwort
        0
        • S sugram

          @mickym

          Es spielt keine Rolle, ob ich das Script so sudo ./midori-restart.sh oder sudo /home/pi/midori-restart.sh ausführe.
          Es wird hierbei nur die midori Session gekillt.
          Ohne dem sudo klappt das Script ja auch einwandfrei.

          Das mit dem getrennt ausführen ist ja so ne Sache, ich möchte das ja über das Display erledigen.
          Wenn ich die midori Session gekillt habe, müsste ich dann auf dem Display auf der Konsole ja wieder einen Befehl eingeben.
          Aber da hängt jetzt keine Tastatur dran und ich wollte das eigentlich auch automatisieren.

          sobald ich in dem script
          #!/bin/bash
          eintrage, geht das ganze nicht mehr, denn das hatte ich am Anfang auch drin.

          S Offline
          S Offline
          sugram
          schrieb am zuletzt editiert von
          #4

          Nur so ein Gedanke.

          Wenn einer weiß wie man den PHP Code dahin verändert, daß er nach dem klick das eine script startet danach 2 sec wartet und dann ein weiteres script startet, würde ich das "Problem" umgehen.
          Also das eine Script beendet die Midori session und das ander startet diese weider.
          Aber mittels mangelnder PHP Kenntnisse kann ich das leider nicht alleine umsetzen.

          mickymM 1 Antwort Letzte Antwort
          0
          • S sugram

            Nur so ein Gedanke.

            Wenn einer weiß wie man den PHP Code dahin verändert, daß er nach dem klick das eine script startet danach 2 sec wartet und dann ein weiteres script startet, würde ich das "Problem" umgehen.
            Also das eine Script beendet die Midori session und das ander startet diese weider.
            Aber mittels mangelnder PHP Kenntnisse kann ich das leider nicht alleine umsetzen.

            mickymM Offline
            mickymM Offline
            mickym
            Most Active
            schrieb am zuletzt editiert von
            #5

            @sugram
            Kann kein php - aber hab mal nachgeschaut - müsste auch mit sleep(2); gehen

            https://www.w3schools.com/php/func_misc_sleep.asp

            Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

            S 1 Antwort Letzte Antwort
            0
            • mickymM mickym

              @sugram
              Kann kein php - aber hab mal nachgeschaut - müsste auch mit sleep(2); gehen

              https://www.w3schools.com/php/func_misc_sleep.asp

              S Offline
              S Offline
              sugram
              schrieb am zuletzt editiert von
              #6

              @mickym

              Ja, wie gesagt kann ich auch kein PHP

              Folgendes mal einfach ausprobiert, aber ohne Erflog.

              <?php
              if ($_GET['run']) {
                # This code will run if ?run=true is set.
                #exec("/path/to/name.sh");
                $script = "sudo /home/pi/midori-restart.sh";
                sleep(3);
                exec("sudo /home/pi/Midori-Display-start.sh");
                $run=`$script`;
              }
              ?>
              
              <!-- This link will add ?run=true to your URL, myfilename.php?run=true -->
              
              <style type="text/css">
              
              
              a { color: #ffffff; text-decoration: none; }
              
              
              </style>
              
              
              <a href="?run=true">Display restart</a>
              
              1 Antwort Letzte Antwort
              0
              Antworten
              • In einem neuen Thema antworten
              Anmelden zum Antworten
              • Älteste zuerst
              • Neuste zuerst
              • Meiste Stimmen


              Support us

              ioBroker
              Community Adapters
              Donate

              287

              Online

              32.4k

              Benutzer

              81.4k

              Themen

              1.3m

              Beiträge
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
              ioBroker Community 2014-2025
              logo
              • Anmelden

              • Du hast noch kein Konto? Registrieren

              • Anmelden oder registrieren, um zu suchen
              • Erster Beitrag
                Letzter Beitrag
              0
              • Home
              • Aktuell
              • Tags
              • Ungelesen 0
              • Kategorien
              • Unreplied
              • Beliebt
              • GitHub
              • Docu
              • Hilfe