Ankündigung

Einklappen
Keine Ankündigung bisher.

Misterhouse: Restart nach Absturz

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

    #16
    Zitat von Chris M. Beitrag anzeigen
    Als geborener Münchner ...
    Hoy Chris M.
    Soso noch ein ein Münchner Kindl, "freu"
    Danke für die Nachhilfe, jetzt isses klarer. Dann versuch ich mein Glück mal mit nohup. Der mh lässt mich auch nicht mehr zur Console zurück, also genauer gesagt, ich muss Putty abwürgen, der läuft aber weiter scheinz als Daemon echt "daemonisch".
    Grüsse Bodo
    Fragen gehören ins Forum, und nicht in mein Postfach;
    EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

    Kommentar


      #17
      Zitat von Bodo Beitrag anzeigen
      Danke für die Nachhilfe, jetzt isses klarer. Dann versuch ich mein Glück mal mit nohup. Der mh lässt mich auch nicht mehr zur Console zurück, also genauer gesagt, ich muss Putty abwürgen, der läuft aber weiter scheinz als Daemon echt "daemonisch".
      Wenn wir schon dabei sind:
      Um ein Programm im Hintergrund zu starten, d.h. um gleich wieder an die Konsole zu kommen, musst Du ein "&" (vermutlich mit Leerzeichen davor) an den Programmaufruf anhängen. Etwas verwirrend kann dann sein, dass die Ausgaben vom Programm einfach mit auf der Konsole landen und damit zwischen allen sonstigen Ausgaben landen können. Dann sollte man die Ausgabe besser in eine Datei umleiten (die man z.B. per "tail -f" sich live ansehen kann um z.B. interaktiv Fehler zu beheben).
      Achtung: Programme die per "&" im Hintergrund gestartet werden, werden bei einem Logout auch mit beendet, d.h. gegen Logout hilft nur das nohup.

      Und noch ein kleiner Hinweis, aber vermutlich war das eh klar: man kann mehrere Putty Sessions parallel betreiben, d.h. sollte wo das Programm nicht zur Konsole zurückkehren (bei "top" würde man das gar nicht wollen...), dann einfach ein weiteres Putty starten...
      TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

      Kommentar


        #18
        Zitat von Chris M. Beitrag anzeigen
        ... man kann mehrere Putty Sessions parallel betreiben ...
        Jo, das hab' ich intuitiv so gemacht.
        Ich find' Linux echt megaklasse, so ganz ohne GUI und es läuft trotzdem.
        Und für jeden ... gibt es eine Lösung, wie beim iPhone, "es gibt ein APP dafür".
        Grüsse Bodo
        Fragen gehören ins Forum, und nicht in mein Postfach;
        EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

        Kommentar


          #19
          So wieder etwas gelernt:
          linknx kann man mit -d als daemon starten, dann kann man putty getrost zumachen und er läuft und läuft
          So einfach ist das.
          Grüsse Bodo
          Fragen gehören ins Forum, und nicht in mein Postfach;
          EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

          Kommentar


            #20
            Zitat von Bodo Beitrag anzeigen
            wie beim iPhone, "es gibt ein APP dafür".
            Richtig SInn macht mit "Es gibt ein apt-get dafür!"

            Kommentar


              #21
              Zitat von RaK Beitrag anzeigen
              "Es gibt ein apt-get dafür!"
              Genau
              Grüsse Bodo
              Fragen gehören ins Forum, und nicht in mein Postfach;
              EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

              Kommentar


                #22
                Hallo,

                gibt es auch für misterhouse eine Startoption mit -d damit er richtig als Dienst läuft?

                Ich habe das start-stop-daemon script von eibd aus dem Lexikon für mh angepasst. Nun funktioniert das wenn ich das von der console ausführe ganz gut nur wird halt immer noch alles auf der console ausgegeben.

                Wenn ich den Rechner nun neustarte und alles automatisch geladen wird, dann schaft mein debian es nicht mehr die grafische console zu starten.

                Erst wenn ich auf der console 1 das mh abbreche läd er diese nach?

                Wie startet Ihr denn mh automatisch?

                LG,

                Steini

                Kommentar


                  #23
                  Zitat von steinradler Beitrag anzeigen
                  ... gibt es auch für misterhouse eine Startoption mit -d damit er richtig als Dienst läuft?
                  Hi Steini
                  Ich habe in /etc/init.d/ ein script mit dem Namen mh (ausführbar machen mit chmod a+x /etc/init.d/mh) geschrieben, nicht perfekt
                  Code:
                  #! /bin/sh
                  PATH=/sbin:/usr/sbin:/bin:/usr/bin:/opt/misterhouse/mh/bin/
                  DESC="Description of the service"
                  NAME=mh
                  DAEMON=/opt/misterhouse/mh/bin/$NAME
                  SCRIPTNAME=/etc/init.d/$NAME
                  # Exit if the package is not installed
                  [ -x "$DAEMON" ] || exit 0
                  # Read configuration variable file if it is present
                  [ -r /etc/default/$NAME ] && . /etc/default/$NAME
                  cd /opt/misterhouse
                  export mh_parms=/opt/misterhouse/mh.private.ini
                  #Misterhouse starten
                  $DAEMON
                  und starte ihn dann mit
                  Code:
                  /etc/init.d/mh
                  $DAEMON ist dabei nur ein Name und hat mit als Daemon laufen nix zu tun.

                  Die mh.private.ini habe ich angepasst:
                  Code:
                  code_dir = /opt/misterhouse/code/private
                  eib_device=ip:localhost
                  latitude  =  47.2764
                  longitude =   8.8708
                  time_zone =   1
                  time_format=24
                  date_format=mmddyy
                  usw.
                  Hoffentlich hab' ich nix vergessen.
                  Grüsse Bodo
                  Fragen gehören ins Forum, und nicht in mein Postfach;
                  EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

                  Kommentar


                    #24
                    Zitat von steinradler Beitrag anzeigen
                    ... Wie startet Ihr denn mh automatisch?
                    Noch nicht, bin noch nicht soweit
                    Grüsse Bodo
                    Fragen gehören ins Forum, und nicht in mein Postfach;
                    EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

                    Kommentar


                      #25
                      Auch an dieser Stelle nochmal es gibt ein Debian Paket inkl. Init-script dafür

                      Feedback immernoch willkommen, sicher nicht perfekt aber macht vielleicht eher Sinn, wenn man nur ein Init-script pflegt..

                      Makki
                      EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
                      -> Bitte KEINE PNs!

                      Kommentar


                        #26
                        Hallo,

                        wie gesagt mein start script sieht so aus:

                        Code:
                        #! /bin/sh
                        
                        PATH=/sbin:/usr/sbin:/bin:/usr/bin
                        DESC="Description of the service"
                        NAME=mh
                        DAEMON=/usr/share/misterhouse/mh/bin/$NAME
                        export mh_parms=/usr/share/misterhouse/mh.private.ini
                        mhhome=/usr/share/misterhouse
                        #DAEMON_ARGS="-log_file ${mhhome}/log"
                        PIDFILE=/var/run/$NAME.pid
                        SCRIPTNAME=/etc/init.d/$NAME
                        
                        # Exit if the package is not installed
                        [ -x "$DAEMON" ] || exit 0
                        
                        # Read configuration variable file if it is present
                        [ -r /etc/default/$NAME ] && . /etc/default/$NAME
                        
                        # Load the VERBOSE setting and other rcS variables
                        . /lib/init/vars.sh
                        
                        # Define LSB log_* functions.
                        # Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
                        . /lib/lsb/init-functions
                        
                        #
                        # Function that starts the daemon/service
                        #
                        do_start()
                        {
                                # Return
                                #   0 if daemon has been started
                                #   1 if daemon was already running
                                #   2 if daemon could not be started
                                start-stop-daemon --start --quiet --make-pidfile --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
                                        || return 1
                                start-stop-daemon --start --quiet --make-pidfile --pidfile $PIDFILE --exec $DAEMON -- \
                                        $DAEMON_ARGS \
                                        || return 2
                                # Add code here, if necessary, that waits for the process to be ready
                                # to handle requests from services started subsequently which depend
                                # on this one.  As a last resort, sleep for some time.
                        }
                        #
                        # Function that stops the daemon/service
                        #
                        do_stop()
                        {
                                # Return
                                #   0 if daemon has been stopped
                                #   1 if daemon was already stopped
                                #   2 if daemon could not be stopped
                                #   other if a failure occurred
                                start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
                                RETVAL="$?"
                                [ "$RETVAL" = 2 ] && return 2
                                # Wait for children to finish too if this is a daemon that forks
                                # and if the daemon is only ever run from this initscript.
                                # If the above conditions are not satisfied then add some other code
                                # that waits for the process to drop all resources that could be
                                # needed by services started subsequently.  A last resort is to
                                # sleep for some time.
                                start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
                                [ "$?" = 2 ] && return 2
                                # Many daemons don't delete their pidfiles when they exit.
                                rm -f $PIDFILE
                                return "$RETVAL"
                        }
                        
                        #
                        # Function that sends a SIGHUP to the daemon/service
                        #
                        do_reload() {
                                #
                                # If the daemon can reload its configuration without
                                # restarting (for example, when it is sent a SIGHUP),
                                # then implement that here.
                                #
                                start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
                                return 0
                        }
                        
                        case "$1" in
                          start)
                                [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
                                do_start
                                case "$?" in
                                        0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                                        2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
                                esac
                                ;;
                          stop)
                                [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
                                do_stop
                                case "$?" in
                                        0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
                                        2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
                                esac
                                ;;
                          #reload|force-reload)
                                #
                                # If do_reload() is not implemented then leave this commented out
                                # and leave 'force-reload' as an alias for 'restart'.
                                #
                                #log_daemon_msg "Reloading $DESC" "$NAME"
                                #do_reload
                                #log_end_msg $?
                                #;;
                          restart|force-reload)
                                #
                                # If the "reload" option is implemented then remove the
                                # 'force-reload' alias
                                #
                                log_daemon_msg "Restarting $DESC" "$NAME"
                                do_stop
                                case "$?" in
                                  0|1)
                                        do_start
                                        case "$?" in
                                                0) log_end_msg 0 ;;
                                                1) log_end_msg 1 ;; # Old process is still running
                                                *) log_end_msg 1 ;; # Failed to start
                                        esac
                                        ;;
                                  *)
                        
                                        # Failed to stop
                                        log_end_msg 1
                                        ;;
                                esac
                                ;;
                          *)
                                #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
                                echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
                                exit 3
                                ;;
                        esac
                        und kann mit
                        Code:
                        /etc/init.d/mh start|restart|stop
                        gestartet, regestartet und gestopt werden. Mit chkconfig kann man es dann auch automatisch für die entsprechenden runlevels laufen lassen, also automatisch. Nur wie halt mit den schon oben erwähnten Einschränkungen.

                        @makki:

                        Zitat von makki:
                        Auch an dieser Stelle nochmal es gibt ein Debian Paket inkl. Init-script dafür
                        Wie aktuell ist denn, das Debian paket? Pflegst Du das alleine, kann man das bedenkenlos über eine bestehende Installation mit apt-get "drüberinstallieren"?


                        Ich hoffe es gibt noch mehr Antworten zu dem Thema...

                        LG,

                        Steini

                        Kommentar


                          #27
                          Hurra,

                          Ich habe es nun geschafft! Na ja, nicht ganz alleine...

                          Das init.d script von dem debian.deb von makki hatte den fehlenden Schalter integriert: die Option "--background" dann läuft mh "detached" (von der console).

                          Ich habe das script dann für meine Zwecke übernommen und noch einen Fehler gefunden: die Option "--make-pidfile" fehlte beim Startbefehl was bewirkte dass sich der "Dienst" nicht stopen oder restarten liess.

                          Nun funktioniert natürlich auch das automatische Starten!

                          Hier noch mal der Code:

                          Code:
                          #! /bin/sh
                          ### BEGIN INIT INFO
                          # Provides:          misterhouse
                          # Required-Start:    $local_fs $remote_fs eibd
                          # Required-Stop:     $local_fs $remote_fs
                          # Default-Start:     2 3 4 5
                          # Default-Stop:      0 1 6
                          # Short-Description: misterhouse initscript
                          # Description:       This file should be used to construct scripts to be
                          #                    placed in /etc/init.d.
                          ### END INIT INFO
                          
                          # misterhouse - control the misterhouse daemon
                          #
                          # Author: Michael Markstaller <devel@wiregate.de>
                          #
                          # UPDATE 20.10.2009
                          # Steinradler: option --make-pidfile hinzuguegt div. auskommentiert;
                          # DAEMON_OPTS-Zeile in das init.d script einguegt und /etc/default auskommentiert
                          #
                          
                          PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
                          export mh_parms=/usr/share/misterhouse/mh.private.ini
                          DAEMON=/usr/share/misterhouse/mh/bin/mh
                          NAME=misterhouse
                          DESC=misterhouse
                          PIDFILE=/var/run/misterhouse.pid
                          #DAEMON_OPTS="-log_file =/usr/share/misterhouse/mh.log"
                          
                          
                          test -x $DAEMON || exit 0
                          
                          # Include misterhouse defaults if available
                          #if [ -f /etc/default/misterhouse ] ; then
                          #    . /etc/default/misterhouse
                          #fi
                          
                          # DO NOT set -e
                          
                          
                          case "$1" in
                            start)
                              echo -n "Starting $DESC: "
                              start-stop-daemon --start --quiet --make-pidfile --pidfile $PIDFILE --background --exec $DAEMON -- $DAEMON_OPTS
                              echo "$NAME."
                              ;;
                            stop)
                              echo -n "Stopping $DESC: "
                              start-stop-daemon --stop --quiet --pidfile $PIDFILE
                              echo "$NAME."
                              ;;
                            reload)
                              echo "Reloading $DESC configuration files."
                              kill -HUP `cat $PIDFILE`
                              ;;
                            restart|force-reload)
                              echo -n "Restarting $DESC: "
                              $0 stop
                              sleep 2
                              $0 start
                              echo "$NAME."
                              ;;
                            *)
                              N=/etc/init.d/$NAME
                              echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
                              exit 1
                              ;;
                          esac
                          
                          exit 0
                          Dann noch mit "chkconfig -add misterhouse" oder mit rcconf automatisch starten lassen und misterhouse läuft auch nach einem reboot...

                          Manuell kann den Status von mh dann mit "/etc/init.d/misterhouse start|stop|restart|reload|force-reload" ändern.

                          Schöne Grüße,

                          Steini

                          Kommentar


                            #28
                            Zitat von steinradler Beitrag anzeigen
                            Hurra,
                            Ich habe es nun geschafft! Na ja, nicht ganz alleine ...
                            Das init.d script von dem debian.deb von makki ...
                            Dann noch mit "chkconfig -add misterhouse" oder mit rcconf automatisch starten lassen und misterhouse läuft auch nach einem reboot...
                            Manuell kann den Status von mh dann mit "/etc/init.d/misterhouse start|stop|restart|reload|force-reload" ändern.
                            Hallo Steini, hallo makki
                            Ich find's toll wenn man etwas lernt dabei. Copy paste hilft schon erst mal und dann will ich schon wissen warum und wie es geht. Es freut mich, dass es jetzt klappt
                            Grüsse Bodo
                            Fragen gehören ins Forum, und nicht in mein Postfach;
                            EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

                            Kommentar


                              #29
                              #DAEMON_OPTS="-log_file =/usr/share/misterhouse/mh.log"

                              Müsste heissen;

                              #DAEMON_OPTS="-log_file /usr/share/misterhouse/mh.log"

                              Kommentar


                                #30
                                Zitat von toldap2 Beitrag anzeigen
                                Müsste heissen;
                                Stimmt, solange ne "#" davor steht aber herzlich egal

                                Makki
                                EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
                                -> Bitte KEINE PNs!

                                Kommentar

                                Lädt...
                                X