Ankündigung
Einklappen
Keine Ankündigung bisher.
Misterhouse: Restart nach Absturz
Einklappen
X
-
Stimmt, solange ne "#" davor steht aber herzlich egalZitat von toldap2 Beitrag anzeigenMüsste heissen;
Makki
Einen Kommentar schreiben:
-
#DAEMON_OPTS="-log_file =/usr/share/misterhouse/mh.log"
Müsste heissen;
#DAEMON_OPTS="-log_file /usr/share/misterhouse/mh.log"
Einen Kommentar schreiben:
-
Hallo Steini, hallo makkiZitat von steinradler Beitrag anzeigenHurra,
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.
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
Einen Kommentar schreiben:
-
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:
Dann noch mit "chkconfig -add misterhouse" oder mit rcconf automatisch starten lassen und misterhouse läuft auch nach einem reboot...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
Manuell kann den Status von mh dann mit "/etc/init.d/misterhouse start|stop|restart|reload|force-reload" ändern.
Schöne Grüße,
Steini
Einen Kommentar schreiben:
-
Hallo,
wie gesagt mein start script sieht so aus:
und kann mitCode:#! /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 ;; esacgestartet, 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.Code:/etc/init.d/mh start|restart|stop
@makki:
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
Einen Kommentar schreiben:
-
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
Einen Kommentar schreiben:
-
Noch nicht, bin noch nicht soweitZitat von steinradler Beitrag anzeigen... Wie startet Ihr denn mh automatisch?
Einen Kommentar schreiben:
-
Hi SteiniZitat von steinradler Beitrag anzeigen... gibt es auch für misterhouse eine Startoption mit -d damit er richtig als Dienst läuft?
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
und starte ihn dann mitCode:#! /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
$DAEMON ist dabei nur ein Name und hat mit als Daemon laufen nix zu tun.Code:/etc/init.d/mh
Die mh.private.ini habe ich angepasst:
usw.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
Hoffentlich hab' ich nix vergessen.
Einen Kommentar schreiben:
-
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
Einen Kommentar schreiben:
-
-
Richtig SInn macht mit "Es gibt ein apt-get dafür!"Zitat von Bodo Beitrag anzeigenwie beim iPhone, "es gibt ein APP dafür".
Einen Kommentar schreiben:
-
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.
Einen Kommentar schreiben:
-
Jo, das hab' ich intuitiv so gemacht.Zitat von Chris M. Beitrag anzeigen... man kann mehrere Putty Sessions parallel betreiben ...
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".
Einen Kommentar schreiben:
-
Wenn wir schon dabei sind:Zitat von Bodo Beitrag anzeigenDanke 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".
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...
Einen Kommentar schreiben:


Einen Kommentar schreiben: