Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Autostart von openhab auf Raspberry PI

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

    #31
    Probleme mit Autostart

    Hi,

    Ich habe die Skripte und alle Befehle durchgeführt und siehe es versucht zu laufen Problem ist nur java macht irgendein Problem ich habe raspbian wheezy von dez 2013 installiert und kein weiteres java

    root@raspberrypi:/etc/init.d# ./openhab start
    : not found3: /etc/default/openhab:
    find:`./server': No such file or directory
    Launching the openHAB runtime..
    root@raspberrypi:/etc/init.d# Unrecognized option: -console
    Error: Could not create the Java Virtual Machine.
    Error: A fatal exception has occurred. Program will exit.

    verwendetes Skript :

    #! /bin/sh
    ### BEGIN INIT INFO
    # Provides: starts openhab from home
    # Required-Start: $network $remote_fs $syslog
    # Required-Stop: $network $remote_fs $syslog
    # Default-Start: 2 3 4 5
    # Default-Stop: 0 1 6
    # Short-Description: Kurze Beschreibung
    # Description: Längere Bechreibung
    ### END INIT INFO
    # Author:

    # set ports for HTTP(S) server
    HTTP_PORT=8080
    HTTPS_PORT=8443

    if test -f /etc/default/openhab; then
    . /etc/default/openhab
    else
    echo "Please set OPENHABPATH in /etc/default/openhab"
    exit 1
    fi

    # Aktionen
    case "$1" in
    start)
    if [ -f /var/run/openhab.pid ]; then
    echo "openhab seems to run allready. If not, please delete /var/run/openhab.pid"
    else

    cd $OPENHABPATH
    # get path to equinox jar inside $OPENHABPATH folder
    cp=$(find ./server -name "org.eclipse.equinox.launcher_*.jar" | sort | tail -1);

    echo Launching the openHAB runtime..
    java -Dosgi.clean=true -Declipse.ignoreApp=true -Dosgi.noShutdown=true -Djetty.port=$HTTP_PORT -Djetty.port.ssl=$HTTPS_PORT -Djetty.home=. -Dlogback.configurationFile=configurations/logback.xml -Dfelix.fileinstall.dir=addons -Djava.library.path=lib -Djava.security.auth.login.config=./etc/login.conf -Dorg.quartz.properties=./etc/quartz.properties -Dequinox.ds.block_timeout=240000 -Dequinox.scr.waitTimeOnBlock=60000 -Djava.awt.headless=true -jar $cp -console &> /dev/null

    echo $! > /var/run/openhab.pid
    fi
    ;;
    stop)
    echo "stopping openhab"
    kill `cat /var/run/openhab.pid`
    rm /var/run/openhab.pid
    ;;
    restart)
    actPid=`cat /var/run/openhab.pid`
    $0 stop
    while [ `ps -ef | grep $actPid | wc -l` -gt 1 ]
    do
    echo -n .
    sleep 2
    done
    echo
    $0 start
    ;;
    esac

    exit 0

    villeicht könnt ihr mir Helfen

    Kommentar


      #32
      Ich habe jetzt die Java zeile in dem Skript geändert und auch in der openhab start.sh die sich im openhab verzeichnis auch problemlos starten lässt.

      Nun sieht mein Fehler so aus

      root@raspberrypi:/etc/init.d# ./openhab start
      : not found3: /etc/default/openhab:
      find:`./server': No such file or directory
      Launching the openHAB runtime..
      Error: Unable to access jarfile start

      verwendetes Skript :

      #! /bin/sh
      ### BEGIN INIT INFO
      # Provides: starts openhab from home
      # Required-Start: $network $remote_fs $syslog
      # Required-Stop: $network $remote_fs $syslog
      # Default-Start: 2 3 4 5
      # Default-Stop: 0 1 6
      # Short-Description: Kurze Beschreibung
      # Description: Längere Bechreibung
      ### END INIT INFO
      # Author:

      # set ports for HTTP(S) server
      HTTP_PORT=8080
      HTTPS_PORT=8443

      if test -f /etc/default/openhab; then
      . /etc/default/openhab
      else
      echo "Please set OPENHABPATH in /etc/default/openhab"
      exit 1
      fi

      # Aktionen
      case "$1" in
      start)
      if [ -f /var/run/openhab.pid ]; then
      echo "openhab seems to run allready. If not, please delete /var/run/openhab.pid"
      else

      cd $OPENHABPATH
      # get path to equinox jar inside $OPENHABPATH folder
      cp=$(find ./server -name "org.eclipse.equinox.launcher_*.jar" | sort | tail -1);

      echo Launching the openHAB runtime..
      java -Dosgi.clean=true -Declipse.ignoreApp=true -Xmx128m -Dosgi.noShutdown=true -Djetty.port=$HTTP_PORT -Djetty.port.ssl=$HTTPS_PORT -Djetty.home=. -Dlogback.configurationFile=configurations/logback.xml -Dfelix.fileinstall.dir=addons -Djava.library.path=/usr/lib/jni -Djava.security.auth.login.config=./etc/login.conf -Dorg.quartz.properties=./etc/quartz.properties -Dequinox.ds.block_timeout=240000 -Dequinox.scr.waitTimeOnBlock=60000 -Djava.awt.headless=true -Dgnu.io.rxtx.SerialPorts=/dev/ttyAMA0 -jar $cp $* -console

      echo $! > /var/run/openhab.pid
      fi
      ;;
      stop)
      echo "stopping openhab"
      kill `cat /var/run/openhab.pid`
      rm /var/run/openhab.pid
      ;;
      restart)
      actPid=`cat /var/run/openhab.pid`
      $0 stop
      while [ `ps -ef | grep $actPid | wc -l` -gt 1 ]
      do
      echo -n .
      sleep 2
      done
      echo
      $0 start
      ;;
      esac

      exit 0

      villeicht könnt ihr mir Helfen

      Kommentar


        #33
        Hi

        Kannst Du bitte den Inhalt von /etc/default/openhab hier posten?

        PS: Code-Schnipsel etc. bitte immer in Code-Tags einfassen. Bitte auch das Init-Script nochmal in Code-Tags einfassen. Die Postings sind sonst sehr schwer zu lesen...

        Kind regards,
        Yves
        Kind regards,
        Yves

        Kommentar


          #34
          Kann mein Java Problem daran liegen das ich kein zusätzliches Java installiert habe

          Das habe ich in etc/default als datei openhab abgelegt

          Code:
          # PATH TO OPENHAB
          OPENHABPATH=/home/pi/openhab
          
          # set ports for HTTP(S) server
          HTTP_PORT=8080
          HTTPS_PORT=8443
          Das habe ich in etc/init.d als datei openhab abgelegt

          Code:
          #! /bin/sh
          ### BEGIN INIT INFO
          # Provides:          starts openhab from home
          # Required-Start:    $network $remote_fs $syslog
          # Required-Stop:     $network $remote_fs $syslog
          # Default-Start:     2 3 4 5
          # Default-Stop:      0 1 6
          # Short-Description: Kurze Beschreibung
          # Description:       Längere Bechreibung
          ### END INIT INFO
          # Author:
          
          # set ports for HTTP(S) server
          HTTP_PORT=8080
          HTTPS_PORT=8443
          
          if test -f /etc/default/openhab; then
              . /etc/default/openhab
          else
              echo "Please set OPENHABPATH in /etc/default/openhab"
              exit 1
          fi
          
          # Aktionen
          case "$1" in
              start)
          	if [ -f /var/run/openhab.pid ]; then
          		echo "openhab seems to run allready. If not, please delete /var/run/openhab.pid"
          	else
          
          		cd $OPENHABPATH
          		# get path to equinox jar inside $OPENHABPATH folder
          		cp=$(find ./server -name "org.eclipse.equinox.launcher_*.jar" | sort | tail -1);
          
          		echo Launching the openHAB runtime..
          		java -Dosgi.clean=true -Declipse.ignoreApp=true -Xmx128m -Dosgi.noShutdown=true -Djetty.port=$HTTP_PORT -Djetty.port.ssl=$HTTPS_PORT -Djetty.home=. -Dlogback.configurationFile=configurations/logback.xml -Dfelix.fileinstall.dir=addons -Djava.library.path=/usr/lib/jni -Djava.security.auth.login.config=./etc/login.conf -Dorg.quartz.properties=./etc/quartz.properties -Dequinox.ds.block_timeout=240000 -Dequinox.scr.waitTimeOnBlock=60000 -Djava.awt.headless=true -Dgnu.io.rxtx.SerialPorts=/dev/ttyAMA0 -jar $cp $* -console
          
          		echo $! > /var/run/openhab.pid
          	fi
          	;;
              stop)
          	echo "stopping openhab"
          	kill `cat /var/run/openhab.pid`
          	rm /var/run/openhab.pid
          	;;
              restart)
          	actPid=`cat /var/run/openhab.pid`
          	$0 stop
          	while [ `ps -ef | grep $actPid | wc -l` -gt 1 ]
          	do
          	   echo -n .
          	   sleep 2
          	done
          	echo
          	$0 start
          	;;
          esac
          
          exit 0

          Kommentar


            #35
            Lass dir mal $OPENHABPATH ausgeben.
            Ist hier nach dem Punkt ein Leerzeichen zu viel ?
            Code:
            if test -f /etc/default/openhab; then
                . /etc/default/openhab
            Holger

            Kommentar


              #36
              Hi,

              Zitat von Tobith Beitrag anzeigen
              Kann mein Java Problem daran liegen das ich kein zusätzliches Java installiert habe
              aber ein Java hast du schon drauf, oder?
              Gib doch bitte mal folgendes auf der Console ein:

              which java

              und paste die Ausgabe dann hier.

              Gruß,
              Thomas

              Kommentar


                #37
                bei der Ausgabe von OPENHABPATH stürzt mein ssh ab wenn ich den code einfüge kommt keine Rückmeldung mache da irgendwas falsch habe auch mal einzeln eingefügt aber dann kommt auch keine Rückmeldung

                bei which java kommt /usr/bin/java

                Kommentar


                  #38
                  setz doch mal den openhabpath hier bzw. den cd
                  "...in etc/init.d als datei openhab abgelegt..."

                  Kommentar


                    #39
                    bin absoluter neuling was linux betrifft ich kann dir leider nicht ganz folgen soll ich die datei ändern oder den aufruf in dem verzeichnis ausführen ?

                    Kommentar


                      #40
                      bin auch nicht der Linux Profi.
                      Ich meine mach den CD auf dein openHAB Verzeichnis in der Startdatei, also in der die da im etc/init.d liegt.

                      also cd /home/pi/openhab

                      statt cd $OPENHABPATH

                      Holger

                      Kommentar


                        #41
                        Versuch mal anstelle der Zeile

                        Code:
                        cp=$(find ./server -name "org.eclipse.equinox.launcher_*.jar" | sort | tail -1);
                        folgende Zeile, den cp soll ja nur den Namen des jar enthalten, oder :

                        Code:
                        cp=`find ./server -name "org.eclipse.equinox.launcher_*.jar" | sort | tail -1`
                        Gruss
                        Steffen

                        Kommentar


                          #42
                          selber fehler ohne openhabpath

                          Error: Unable to access jarfile start

                          Code:
                          #! /bin/sh
                          ### BEGIN INIT INFO
                          # Provides:          starts openhab from home
                          # Required-Start:    $network $remote_fs $syslog
                          # Required-Stop:     $network $remote_fs $syslog
                          # Default-Start:     2 3 4 5
                          # Default-Stop:      0 1 6
                          # Short-Description: Kurze Beschreibung
                          # Description:       Längere Bechreibung
                          ### END INIT INFO
                          # Author:
                          
                          # set ports for HTTP(S) server
                          HTTP_PORT=8080
                          HTTPS_PORT=8443
                          
                          if test -f /etc/default/openhab; then
                              . /etc/default/openhab
                          else
                              echo "Please set OPENHABPATH in /etc/default/openhab"
                              exit 1
                          fi
                          
                          # Aktionen
                          case "$1" in
                              start)
                          	if [ -f /var/run/openhab.pid ]; then
                          		echo "openhab seems to run allready. If not, please delete /var/run/openhab.pid"
                          	else
                          
                          		cd /home/pi/openhab
                          
                          		echo Launching the openHAB runtime..
                          		java -Dosgi.clean=true -Declipse.ignoreApp=true -Xmx128m -Dosgi.noShutdown=true -Djetty.port=$HTTP_PORT -Djetty.port.ssl=$HTTPS_PORT -Djetty.home=. -Dlogback.configurationFile=configurations/logback.xml -Dfelix.fileinstall.dir=addons -Djava.library.path=/usr/lib/jni -Djava.security.auth.login.config=./etc/login.conf -Dorg.quartz.properties=./etc/quartz.properties -Dequinox.ds.block_timeout=240000 -Dequinox.scr.waitTimeOnBlock=60000 -Djava.awt.headless=true -Dgnu.io.rxtx.SerialPorts=/dev/ttyAMA0 -jar $cp $* -console
                          
                          		echo $! > /var/run/openhab.pid
                          	fi
                          	;;
                              stop)
                          	echo "stopping openhab"
                          	kill `cat /var/run/openhab.pid`
                          	rm /var/run/openhab.pid
                          	;;
                              restart)
                          	actPid=`cat /var/run/openhab.pid`
                          	$0 stop
                          	while [ `ps -ef | grep $actPid | wc -l` -gt 1 ]
                          	do
                          	   echo -n .
                          	   sleep 2
                          	done
                          	echo
                          	$0 start
                          	;;
                          esac
                          
                          exit 0

                          Kommentar


                            #43
                            ich vermisse die cp - Zuweisung in deiner Datei.
                            auch hier mal die direkte Zuweisung probieren, jar File auf deine genaue Bezeichnung anpassen:

                            Code:
                            # der sollte den launcher finden, evtl. $cp mal ausgeben
                            cp=$(find server -name "org.eclipse.equinox.launcher_*.jar" | sort | tail -1);
                            
                            # oder den hier, server befindet sich im ../openhab Verzeichnis
                            # Dateinamen genau prüfen 
                            cp=server/plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
                            Edit: Poste mal die genaue Ausgabe/Fehlermeldung, dann sieht man evtl. wie weit er gekommen ist

                            Kommentar


                              #44
                              Hallo miteinander

                              Zitat von mod42 Beitrag anzeigen
                              Versuch mal anstelle der Zeile

                              Code:
                              cp=$(find ./server -name "org.eclipse.equinox.launcher_*.jar" | sort | tail -1);
                              folgende Zeile, den cp soll ja nur den Namen des jar enthalten, oder :

                              Code:
                              cp=`find ./server -name "org.eclipse.equinox.launcher_*.jar" | sort | tail -1`
                              Gruss
                              Steffen
                              Die beiden Aufrufe sind identisch. Die Syntax mit Backticks ist deprecated und es sollte anstelle von

                              Code:
                              `...`
                              immer die Form

                              Code:
                              $(...)
                              verwendet werden. Was mir jedoch gerade auffällt, ist das Semikolon am Ende der ursprünglichen Zeile. Das sollte eigentlich nichts ausmachen, es ist aber auch nicht wirklich notwendig.

                              Kind regards,
                              Yves
                              Kind regards,
                              Yves

                              Kommentar


                                #45
                                Hallo miteinander

                                Zitat von HolgerW Beitrag anzeigen
                                Ist hier nach dem Punkt ein Leerzeichen zu viel ?
                                Code:
                                if test -f /etc/default/openhab; then
                                    . /etc/default/openhab
                                Nein, das ist so richtig. Der Punkt entspricht dem Source-Befehl, also dem einlesen der dahinter angegebenen Datei.

                                Kind regards,
                                Yves
                                Kind regards,
                                Yves

                                Kommentar

                                Lädt...
                                X