Ankündigung

Einklappen
Keine Ankündigung bisher.

EDOMI-Releases/Updates | Aktuell: Version 2.03

Einklappen
Dieses Thema ist geschlossen.
X
Das ist ein wichtiges Thema.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • wintermute
    antwortet
    Zitat von gaert Beitrag anzeigen
    Ungeachtet dessen: Wo siehst Du das Problem mit rc-local? INIT würde hier m.E. keine wirklichen Vorteile bieten, da sich EDOMI eh an keine Konvention hält
    Ja, versteh ich... aber ein "echtes" init-Skript haette (unter anderem) den Vorteil, dass man Edomi OS-seitig aktivieren oder deaktivieren kann. Ich weiss, das widersprciht dem Konzept ein wenig, drum auch meine Einschraenkung von oben.
    "Sauberer" waere es trotzdem ;P

    Einen Kommentar schreiben:


  • gaert
    antwortet
    Zitat von rdeckard Beitrag anzeigen
    Jetzt hast du mich aber fast erschreckt. Deine letzte Nachricht sah vom Aufbau aus wie Release-Notes einer neuen Version...
    Sorry... Aber wäre dies wirklich so schlimm?! Keine Angst: Das nächste Update kommt vermutlich (wie immer) schneller als man so annehmen könnte... Ich habe inzwischen am KNX-"Stack" geschraubt - das Timing der Queue wurde verbessert. Aktuell kann es nämlich in speziellen Fällen zu "Problemen" kommen, wenn sich die Telegramme stauen (Telegrammrate...): Der KNX-Prozess versucht die Telegramme schnellstmöglich loszuwerden (also auf den Bus zu senden), was nicht immer sinnvoll ist (je nach Zielsetzung einer Logik zum Beispiel).

    Einen Kommentar schreiben:


  • gaert
    antwortet
    Tja... Wie gewonnen so zerronnen

    Aber zu Deiner Frage: Klar - sehr gerne!

    Die rc.local-Variante ist quasi ein Relikt aus der EDOMI-Vergangenheit... Ich wollte schnell und einfach einen Autostart und habe dies quasi auf die Schnelle so gelöst (Faulheit). Und da dies immer so schön funktionierte...........

    Ein weiterer Grund: Zu Urzeiten kommunizierte EDOMI noch per eibd mit dem Bus. Leider wollte eibd (bei mir zumindest) nicht per INIT starten - warum auch immer. Per rc.local hingegen lief der Bursche brav an.

    Ungeachtet dessen: Wo siehst Du das Problem mit rc-local? INIT würde hier m.E. keine wirklichen Vorteile bieten, da sich EDOMI eh an keine Konvention hält

    Einen Kommentar schreiben:


  • wintermute
    antwortet
    Zitat von rdeckard Beitrag anzeigen
    BLASPHEMIE! BLASHPHEMIE!
    Du hast mich falsch zitiert!

    Da war nen Smilie hinter

    Einen Kommentar schreiben:


  • rdeckard
    antwortet
    Das ist so amateurhaft
    BLASPHEMIE! BLASHPHEMIE!

    Einen Kommentar schreiben:


  • wintermute
    antwortet
    Zitat von gaert Beitrag anzeigen
    So...
    pfff... dann funktioniert mein init-script ja nicht mehr

    Frage: (ich weiss, das ist eigentlich anders gedacht, aber) koennte man nicht die gesamte Edomi-Mimik ueber ein init-Script fahren? Also raus aus rc.local? Das ist so amateurhaft Ich taet das auch gern entsprechend aufbereiten dann (wenn du - was ich verstehen kann - init Skripte nicht magst).

    gruesse :: Michael

    Einen Kommentar schreiben:


  • rdeckard
    antwortet
    Jetzt hast du mich aber fast erschreckt. Deine letzte Nachricht sah vom Aufbau aus wie Release-Notes einer neuen Version...

    Einen Kommentar schreiben:


  • gaert
    antwortet
    So... Nach dem nächsten Update wird sich control.php dann wie folgt verhalten:
    • reboot
      • Die Hardware wird neugestartet (reboot)
      • Ausgabe: OK;REBOOT (es wird nicht geprüft, ob der Befehl tatsächlich ausgeführt wurde)
    • shutdown
      • Die Hardware wird heruntergefahren
      • Ausgabe: OK;SHUTDOWN (es wird nicht geprüft, ob der Befehl tatsächlich ausgeführt wurde)
    • start
      • EDOMI wird gestartet (sofern EDOMI pausiert ist und ein Live-Projekt vorhanden ist)
      • Ausgabe: OK;START (es wird nicht geprüft, ob der Befehl tatsächlich ausgeführt wurde)
    • pause
      • EDOMI wird pausiert
      • Ausgabe: OK;PAUSE (es wird nicht geprüft, ob der Befehl tatsächlich ausgeführt wurde)
    • restart
      • EDOMI wird neugestartet (oder pausiert, wenn kein Live-Projekt vorhanden ist)
      • Ausgabe: OK;RESTART (es wird nicht geprüft, ob der Befehl tatsächlich ausgeführt wurde)
    • stop/quit
      • EDOMI wird vollständig beendet (zum Linux-Promt)
      • Ausgabe: OK;STOP/QUIT;WAITING...
      • wenn das Beenden erfolgreich war: OK;STOP/QUIT;READY
      • wenn das Beenden nicht erfolgreich war (nach 30 Sekunden): ERROR;STOP/QUIT;TIMEOUT
    Beim Parameter "stop" (oder "quit") wird also gewartet, bis EDOMI tatsächlich beendet ist und die entsprechende Meldung ausgegeben. Nach 30 Sekunden wird ggf. die Timeout-Meldung ausgegeben.

    Einen Kommentar schreiben:


  • gaert
    antwortet
    Nee - ich habe diese INIT-Scripte immer gehasst, deswegen find's ich super!

    Einen Kommentar schreiben:


  • wintermute
    antwortet
    Zitat von gaert Beitrag anzeigen
    Klar - Dein Script ist super!
    Das ist jetzt etwas zu euphorisch

    Einen Kommentar schreiben:


  • BadSmiley
    antwortet
    Nein, ich habe nur eine 1 Button visu aktuell und wenn es mehr wird, dann bleibt edomi an. Von mir kann es im Administrator Bereich ja blinken?

    Einen Kommentar schreiben:


  • gaert
    antwortet
    Kann man - aber will man das? Spätestens wenn Deine DBs verhuddelt sind und nix mehr geht, quillt das Forum vermutlich mit Anfragen Deinerseits über...

    Einen Kommentar schreiben:


  • BadSmiley
    antwortet
    Kann man das rote blinken nicht einfach aus machen?

    Einen Kommentar schreiben:


  • gaert
    antwortet
    Klar - Dein Script ist super!

    Ich muss allerdings noch ergänzen, dass im "Fehlerfall" (also wenn EDOMI aus irgendwelchen Gründen hängt) ohnehin ein Reboot angestoßen wird. Die Prozesse überwachen sich nämlich gegenseitig, d.h. wenn einer ausfällt, sorgen die anderen dafür, dass ein Reboot eingeleitet wird (und somit hoffentlich ein Neustart von EDOMI).

    Unabhängig davon kann ich auch gerne control.php noch ein wenig erweitern, also exit-Codes übergeben etc... Das Script habe ich irgendwann mal auf die Schnelle gebastelt (und nie wirklich gebraucht)

    Einen Kommentar schreiben:


  • wintermute
    antwortet
    Zitat von gaert Beitrag anzeigen
    Die Wartezeit hängt von vielen Faktoren ab...
    Bei mir isses im Moment so 5-6 Sekunden.
    Ich finde das Skript kann nicht schaden, greift ja nur im Notfall

    Hier in aktualisiert:
    Code:
    #!/bin/sh
    
    # chkconfig: - 93 10
    # description: Edomi init Skript
    
    ### BEGIN INIT INFO
    # Provides: edomi
    # Required-Start: $local_fs mysqld httpd
    # Required-Stop:  $local_fs mysqld httpd
    # Default-Start: 2 3 4 5
    # Default-Stop: 0 1 6
    # Short-Description: stop Edomi
    # Description: Edomi
    ### END INIT INFO
    
    . /etc/rc.d/init.d/functions
    
    RETVAL=0
    
    edomipid() {
        echo `ps -ef | grep "/usr/local/edomi/main/proc/[p]roc_main.php" | awk '{print $2}'`
    }
    
    stop() {
        wait=30
        echo -n $"Shutting down Edomi: "
        /usr/bin/php /usr/local/edomi/main/control.php quit
        rm -f /var/lock/subsys/edomi
        sleep 1
        PID=$(edomipid)
        s=0
        if [ "x$PID" != x ] ; then
            echo "Allowing Edomi to terminate within $wait seconds"
        fi
        while [ "x$PID" != x ]; do
            s=$((s+1))
            echo -n "."
            if [ "$s" -ge $wait ]; then
                echo "Edomi did not terminate, hard killing"
                kill -9 $PID
                exit 0;
            fi
            sleep 1
            PID=$(edomipid)
        done
        echo
        exit 0;
    }
    
    start() {
        touch /var/lock/subsys/edomi
    }
    
    status() {
        echo not implemented
    }
    
    restart() {
        /usr/bin/php /usr/local/edomi/main/control.php restart
    }
    
    case "$1" in
      start)
            start
            ;;
      stop)
            stop
            ;;
      status)
            status
            ;;
      restart)
            restart
            ;;
      condrestart|try-restart)
            status >/dev/null 2>&1 || exit 0
            restart
            ;;
      force-reload)
            restart
            ;;
      *)
            echo $"Usage: $prog {start|stop|restart|force-reload|condrestart|try-restart|status|help}"
            RETVAL=2
    esac
    
    exit $RETVAL

    Einen Kommentar schreiben:

Lädt...
X