Ankündigung

Einklappen
Keine Ankündigung bisher.

OpenHab Konsole mit autostart script

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    OpenHab Konsole mit autostart script

    Guten Abend zusammen,

    ich habe noch eine weitere Frage.

    Und zwar ob es eine Möglichkeit gib auf die OpenHab Konsole zu zu greifen wenn man OpenHab nicht mit dem Start-script sondern über den Autostart (init.d) startet ?

    Danke im Voraus

    Gruß Adrian

    #2
    Hi,

    du könntest in deinem init-Skript "screen" verwenden, um openHAB zu starten. Damit kannst du dich dann je nach Belieben an den Prozess "attachen" oder "detachen".

    Gruß,
    thoern

    Kommentar


      #3
      Alternativ kannst Du einen Port konfigurieren, auf den Du Dich dann per telnet verbinden kannst (leider ohne Autentifizierung)
      Am Ende des openHAB-Aufrufs steht dann
      Code:
      -jar $cp -console ${TELNETPORT}
      womit die Konsole auf dem entsprechenden Port landet (im init-script steht da normalerweise /dev/null)

      Siehe auch https://knx-user-forum.de/openhab/29...tml#post341443

      Kommentar


        #4
        Danke für die Rückmeldungen.
        Ich benutze vorerst telnet der Einfachheit wegen .

        Gruß Adrian

        Kommentar


          #5
          Zitat von thoern Beitrag anzeigen
          Hi,

          du könntest in deinem init-Skript "screen" verwenden, um openHAB zu starten. Damit kannst du dich dann je nach Belieben an den Prozess "attachen" oder "detachen".

          Gruß,
          thoern
          Hallo zusammen,

          leider komme ich mit diesem blöden Autostart immer noch nicht weiter und erhalte immer eine Fehlermeldung beim Start meines Raspberry Pi. Da ich mich auch gerne von Remote auf die Session und die OSGI Konsole schalten würde, bin ich auch an der Lösung mit Screen interessiert.

          Da ich noch nicht so im Linux bewandert bin, wäre ich für eine kurze Anleitung MEGA dankbar!

          - Installation Screen
          - Konfiguration Autostart für OpenHAB mit Screen

          Ich habe derzeit die Konfig nach Mepi's Anleitung vorgenommen, leider bekomme ich die Autostart Funktion trotzdem nicht ans fliegen :-( Evtl. kann Mepi dies dann in die nächste Version der Gesamtdoke aufnehmen, um dies allen zur Verfügung zu stellen ;-)

          Viele Grüße und einen super Sonntag noch,

          Jörg

          Kommentar


            #6
            Hi,
            An der Kommandozeile:
            Code:
            > sudo apt-get update && sudo apt-get upgrade
            > sudo apt-get install screen nano
            > sudo nano /etc/init.d/openhab
            Das aktualisiert die Paketlisten und installiert screen und nano (Falls Du das schon hast, ist das natürlich unnötig)Anschließend legt es in /etc/init.d/ eine Datei namens openhab an und öffnet diese zum editieren.

            In die Datei folgenden Code einfügen:
            Code:
            #!/bin/bash
            # /etc/init.d/screen
            
            ### BEGIN INIT INFO
            # Provides:   openHAB
            # Required-Start: $local_fs $remote_fs
            # Required-Stop:  $local_fs $remote_fs
            # Should-Start:   $network
            # Should-Stop:    $network
            # Default-Start:  2 3 4 5
            # Default-Stop:   0 1 6
            # Short-Description:    Start and stop openHAB in scrren Session
            # Description:    This runs a script continuously in screen.
            ### END INIT INFO
            # hier den User eintragen, unter dem openHAB laufen soll
            OHUSER=openhab-user
            #hier den Pfad zur runtime eintragen, in diesem Verzeichnis liegt üblicherweise start.sh
            OPENHABPATH=/opt/openhab
            
            case "$1" in
            
              start)
                    echo "Starting openHAB"
                    cd ${OPENHABPATH}
                    sudo -u ${OHUSER} screen -S openHAB -dm  sh ./start.sh
                    ;;
              stop)
                    echo "Stopping openHAB"
                    sudo -u ${OHUSER} screen -S openHAB -p 0 -X stuff "exit$(printf \\r)"
                    sudo -u ${OHUSER} screen -S openHAB -p 0 -X stuff "y$(printf \\r)"
                    sudo -u ${OHUSER} screen -S openHAB -p 0 -X stuff "exit$(printf \\r)"
            #        PID=`ps -ef | grep screen.sh | grep -v grep | awk '{print $2}'`
            #        kill -9 $PID
                    ;;
            
              restart|force-reload)
                    echo "Restarting openHAB"
                    sudo -u ${OHUSER} screen -S openHAB -p 0 -X stuff "exit$(printf \\r)"
                    sudo -u ${OHUSER} screen -S openHAB -p 0 -X stuff "y$(printf \\r)"
                    sudo -u ${OHUSER} screen -S openHAB -p 0 -X stuff "exit$(printf \\r)"
                    PID=`ps -ef | grep openHAB | grep -v grep | awk '{print $2}'`
            while [ `ps -ef | grep $PID | wc -l` -gt 1 ]
                do
                   echo -n .
                   sleep 2
                done
                echo .
                    cd ${OPENHABPATH}
                    sudo -u ${OHUSER} screen -S openHAB -dm sh ./start.sh
                    ;;
              *)
                    N=/etc/init.d/$NAME
                    echo "Usage: $N {start|stop|restart}" >&2
                    exit 1
                    ;;
            esac
            exit 0
            Mit <ctrl>+x und anschließend y oder j + <return> den Editor verlassen.
            An der Kommandozeile:
            Code:
            > sudo chmod 755 /etc/init.d/openhab
            > sudo update-rc.d openhab defaults
            womit die Datei ausführbar gemacht und mit den Defaults für Autostart aktiviert wird.
            Anschließend sollte openHAB mit
            Code:
            > sudo service openhab start
            oder
            Code:
            > sudo /etc/init.d/openhab start
            starten. Dass dieser Start auch geklappt hat, kannst Du mit
            Code:
            > ps aux | grep Dosgi
            überprüfen - es sollte eine irre lange Zeile ausgegeben werden, in der auch das wort java auftaucht (und häufiger Dosgi).
            weiterhin sollte ein
            Code:
            > sudo -u ${OHUSER} screen -r openHAB
            zu der screen-Session führen (wobei Du ${OHUSER} mit dem Namen des openhab-users ersetzen musst, den Du auch in der Batch-datei gesetzt hast.

            Kommentar


              #7
              Noch vergessen zu erwähnen...

              Wenn Du als OHUSER angemeldet bist, reicht natürlich ein
              Code:
              screen -r openHAB
              aus. Falls Die openHAB-Session die einzige screen-session dieses Users ist, reicht auch
              Code:
              screen -r
              Wenn Du mit der Session verbunden bist, reicht ein <ctrl>+a - d aus, um die Session zu detachen, d.h. zu trenne, ohne des laufende Programm zu beenden. Kann man sich gut merken: Adee... ;-)

              Kommentar


                #8
                Zitat von udo1toni Beitrag anzeigen
                Code:
                > sudo -u ${OHUSER} screen -r openHAB
                zu der screen-Session führen (wobei Du ${OHUSER} mit dem Namen des openhab-users ersetzen musst, den Du auch in der Batch-datei gesetzt hast.
                Leider bekomme ich dabei folgende Fehlermeldung

                Cannot open your terminal '/dev/pts/0' - please check.
                Wenn ich auf die Sessions prüfe, bekommen ich

                pi@MyOpenHAB ~ $ sudo service openhab stop
                Stopping openHAB
                There are several suitable screens on:
                2219.openHAB (18.10.2014 23:23:50) (Detached)
                1924.openHAB (18.10.2014 23:22:31) (Detached)
                Use -S to specify a session.
                There are several suitable screens on:
                2219.openHAB (18.10.2014 23:23:51) (Detached)
                1924.openHAB (18.10.2014 23:22:32) (Detached)
                Use -S to specify a session.
                There are several suitable screens on:
                2219.openHAB (18.10.2014 23:23:51) (Detached)
                1924.openHAB (18.10.2014 23:22:32) (Detached)
                Use -S to specify a session.
                Und schon stehe ich wieder auf dem Schlauch :-(

                Kommentar


                  #9
                  Zitat von JoergA Beitrag anzeigen
                  Wenn ich auf die Sessions prüfe, bekommen ich
                  Code:
                  pi@MyOpenHAB ~ $ sudo service [URL="http://redaktion.knx-user-forum.de/lexikon/openhab/"]openhab[/URL] stop
                  Stopping [URL="http://redaktion.knx-user-forum.de/lexikon/openHAB/"]openHAB[/URL]
                  There are several suitable screens on:
                  Sieht so aus, als liefen da mehrere screen-Sessions nebeneinander (und eventuell auch mehrere openHAB-Instanzen).
                  Gib mal
                  Code:
                  screen -ls
                  ein, das zeigt Dir alle offenen Sessions an. Mit
                  Code:
                  screen -r {sessionid}
                  kannst Du in die jeweiligen Sessions wechseln und diese von Hand beenden (z.B. mit <ctrl>-c und am Prompt dann exit) {sessionid} musst Du natürlich mit der Nummer ersetzen, die das screen -ls ausgegeben hat.
                  Und schon stehe ich wieder auf dem Schlauch :-(
                  Mach Dir nichts draus, die Lernkurve ist bei Linux etwas steiler ;-)

                  Kommentar


                    #10
                    Der Vollständigkeit halber hier noch mein aktuelles init-Script:
                    Code:
                    ### BEGIN INIT INFO
                    # Provides:   openHAB
                    # Required-Start: $local_fs $remote_fs
                    # Required-Stop:  $local_fs $remote_fs
                    # Should-Start:   $network
                    # Should-Stop:    $network
                    # Default-Start:  2 3 4 5
                    # Default-Stop:   0 1 6
                    # Short-Description:    Start and stop openHAB in scrren Session
                    # Description:    This runs a script continuously in screen.
                    ### END INIT INFO
                    # Set OH-User
                    OHUSER=openhab
                    # Set OH-Path
                    OHPATH=/opt/openhab
                    
                    case "$1" in
                    
                      start)
                            PID=`ps -ef | grep openHAB | grep -v grep | awk '{print $2}'`
                            if [ "${PID}" != "" ]
                             then
                              echo openHAB-Screen scheint schon zu laufen! PID ist `pidof SCREEN`
                             else
                              echo "Starting openHAB"
                              cd ${OHPATH}
                              sudo -u ${OHUSER} screen -S openHAB -dm  sh ./start.sh
                            fi
                            ;;
                      stop)
                            echo "Stopping openHAB"
                            sudo -u ${OHUSER} screen -S openHAB -p 0 -X stuff "exit$(printf \\r)"
                            sudo -u ${OHUSER} screen -S openHAB -p 0 -X stuff "y$(printf \\r)"
                            sudo -u ${OHUSER} screen -S openHAB -p 0 -X stuff "exit$(printf \\r)"
                            PID=`ps -ef | grep openHAB | grep -v grep | awk '{print $2}'`
                            while [ `ps -ef | grep $PID | wc -l` -gt 1 ]
                             do
                              echo -n .
                              sleep 2
                             done
                            echo .
                            ;;
                      restart|force-reload)
                            echo "Restarting openHAB"
                            $0 stop
                            $0 start
                            ;;
                      *)
                            N=/etc/init.d/$NAME
                            echo "Usage: $N {start|stop|restart}" >&2
                            exit 1
                            ;;
                    esac
                    exit 0
                    Im Kopf des Scripts einfach den gewünschten User und den Pfad zur start.sh eintragen. Die aktuelle Fassung prüft, ob schon eine openHAB-Session läuft.
                    (Der User muss existieren und in der Lage sein, openHAB zu starten - das heißt, er muss Schreib- und Ausführungsrechte im Pfad haben, in dem openHAB liegt.)
                    Vorausgesetzt, es läuft nur eine Screen-Session und Du bist unter dem openHAB-User angemeldet, reicht ein
                    Code:
                    screen -r
                    um in die OSGI-Konsole zu wecheln. Ansonsten
                    Code:
                    sudo -u {OHUSER} screen -r [URL="http://redaktion.knx-user-forum.de/lexikon/openHAB/"]openHAB[/URL]
                    wobei Du {OHUSER} mit dem User ersetzen musst, der im init-Script angegeben ist.

                    Kommentar


                      #11
                      Hallo Udo,


                      mit dem neuen Script geht es nun !!!!

                      Zitat von udo1toni Beitrag anzeigen
                      Wenn Du mit der Session verbunden bist, reicht ein <ctrl>+a - d aus, um die Session zu detachen, d.h. zu trenne, ohne des laufende Programm zu beenden.
                      Hier ist noch ein kleiner Dreher drin, oder Du meinst mit dem - bei d das beide gleichzeitig gedrückt werden müssen ;-)

                      Also für mich ==> <ctrl> + a + d

                      Viele Dank und besten Gruß,

                      Somit habe ich meinen Raspberry installiert, OpenHAB lauft als Demo in Screen, die Session wird nach einem Rebott gestartet.

                      Jetzt erfolgt der Transfer der Windows Konfiguration und die weiteren Tests mit Dropbox und Prowl AddOn ;-)

                      Als letztes folgt dann, wenn alles läuft ein Image der SD Karte, denn eine war letztens auf einmal Schrott.

                      Viele Grüße und einen tollen Rest-Sonntag noch,
                      Jörg

                      Kommentar


                        #12
                        Zitat von JoergA Beitrag anzeigen
                        Hier ist noch ein kleiner Dreher drin, oder Du meinst mit dem - bei d das beide gleichzeitig gedrückt werden müssen ;-)

                        Also für mich ==> <ctrl> + a + d
                        Genau, Du hast Recht. Das geht bei mir inzwischen so automatisch... :-)

                        Kommentar


                          #13
                          openhab autostart

                          hallo zusammen,

                          ich sitze hier schon 3 tage dran bekomme das mit dem autostart nicht hin.
                          wenn ich "sudo service openhab start" eingebe kommt "env: /etc/init.d/openhab: Datei oder Verzeichnis nicht gefunden" woran kann es noch liegen.

                          ulti

                          Kommentar


                            #14
                            Hallo Ulti,

                            den Befehl "Service" kenne ich gar nicht. Den gibt es unter Linux, sollte aber für den Autostart nicht benötigt werden (ich gehe davon aus dass du ein Linux System hast).

                            Das Skript openhab muss natürlich ausführbar sein.
                            Ist die der Fall, kann mit
                            sudo /etc/init.d/openhab start
                            oder
                            sudo /etc/init.d/openhab stop
                            Openhab gestartet oder gestopt werden.

                            Bitte schau dir auch mal die Dokumentation an, hier ist es beschrieben (allerdings noch nicht in schön),

                            https://knx-user-forum.de/openhab/29...tml#post436802

                            In der Wiki von ubuntuuser.de findet man auch sehr viele nützliche Beschreibungen. Da Ubuntu ein Debian Derivat ist, kann vieles auch auf Rasbian projiziert werden.

                            Dienste ? Wiki ? ubuntuusers.de

                            Gruß
                            mepi0011

                            Kommentar


                              #15
                              hallo mepi0011,

                              ich habe ein rapsberry auf dem ich das ganze zum laufen bringen möchte,
                              das Handbuch habe ich auch schon gelesen und auch das Forum durchsucht nur leider klappt das alles nicht so ganz bei mir.

                              mit dem Befehl sudo /etc/init.d/openhab start kommt sudo: unable to execute /etc/init.d/openhab: No such file or directory die datei hatt rechte 755.

                              ulti

                              Kommentar

                              Lädt...
                              X