Ankündigung

Einklappen
Keine Ankündigung bisher.

eibd und Linknx starten

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

    eibd und Linknx starten

    Ich lasse eibd und Linknx auf einem Linksys WRT54GS mit OpenWRT laufen.
    Die Kombinatioin funktioniert auch gut - wenn beide Programme gestartet wurden. Dafür habe ich in etc/init.d/eibd folgendes versucht:
    Code:
    #!/bin/sh /etc/rc.common
    # Copyright (C) 2006 OpenWrt.org
    START=90
    
    start() {
        sleep 60
        eibd -D -S -T -d/dev/pts/0 -i -t2 -p /var/run/eibd.pid ft12:/dev/tts/1
    }
    
    stop() {
        killall eibd
    }
    Ohne den sleep befehl startet eibd nicht erfolgreich. Die 60 Sekunden reichen aber bei mir in jedem Fall. Hat jemand Erfahrung mit kleineren Werten?

    Für Linknx versuche ich in etc/init.d/linknx das:
    Code:
    #!/bin/sh /etc/rc.common
    # Copyright (C) 2006 OpenWrt.org
    START=97
    
    start() {
        sleep 60
         linknx --config=/etc/config/linknx.xml --daemon=/tmp/log/linknx.log --pid-file=/tmp/run/linknx.pid
     }
    
    stop() {
        killall linknx
    }
    Der Start von Linknx kommt trotz der Startreihenfolge und des sleeps teilweise so früh, dass eibd noch nicht mit der Initialisierung fertig ist. In diesem Fall ist der Start nicht erfolgreich.

    Daher habe ich einen Loop in das script eingefügt:
    Code:
    #!/bin/sh /etc/rc.common
    # Copyright (C) 2006 OpenWrt.org
    START=97
    
    start() {
            echo testing, if linknx is running
            if (ps w | grep -v grep | grep linknx.pid) then {
                # linknx is running
                echo linknx is running
            } else {
                # linknx is not running
                echo linknx is not running
                while (!(ps w | grep -v grep | grep linknx.pid)) do
                    echo attempting to start linknx.
                    linknx --config=/etc/config/linknx.xml --daemon=/tmp/log/linknx.log --pid-file=/tmp/run/linknx.pid
                    sleep 10
                done
            } fi
    }
    
    stop() {
        killall linknx
    }
    Jetzt hängt der komplette Systemstart. ps an der Konsole zeigt den sleep und das script selbst. Wenn wiederholt ps eingegeben wird, läuft es dann.

    Über Beiträge zu dieser Hard- und Software- und OS-Kombination würde ich mich sehr freuen!

    Viele Grüße,
    fivesails

    #2
    Hi,

    ich habe wie in einem anderen Thread hier von Jeff mal beschrieben wurde (muss ich mal suchen und verlinken) -> gefunden https://knx-user-forum.de/showpost.p...3&postcount=59 unter /etc/init.d/ ein Script namens S70linknx mit folgendem Inhalt:

    Code:
    #!/bin/sh
    sleep 10
    /usr/bin/eibd -D -T -S -d -i ipt:192.168.1.1
    sleep 2
    mkdir /tmp/lib
    cd /tmp/lib
    ln -s /usr/var/lib/linknx/ linknx
    linknx -c -d
    lighttpd -f /etc/lighttpd.conf
    lighttpd -f /etc/lighttpdohne.conf
    Ich habe keinerlei Probleme beim Starten der verschiedenen Programme.
    Endlich kann Ich Bei Euch mitreden ...

    Kommentar


      #3
      auch ich verwende dieses Script und es läuft problemlos auf einen openWRT....

      Schau' einmal, ob das Problem nicht in der Startreihung der Scripte liegt...
      Die Startreihenfolge wird durch die Nummern der Scriptnamen bestimmt..
      EPIX
      ...und möge der Saft mit euch sein...
      Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

      Kommentar


        #4
        zuerst vielen Dank für die Posts, besonders interessant fand ich den Link zur alten Thread mit den Kommentaren von Jean-François'.

        Bei mir läuft es jetzt auch unter Kamikaze 7.09 auf einem WRT54GS in der folgenden Form:

        Code:
        #!/bin/sh /etc/rc.common
        START=97
        
        start() {
            # 10 sekunden warten, um den BCU starten lassen
            sleep 10
            eibd -d -i -p /var/run/eibd.pid ft12:/dev/tts/1
            sleep 2
            linknx --config=/etc/config/linknx.xml --daemon=/tmp/log/linknx.log --pid-file=/tmp/run/linknx.pid
        }
        
        stop() {
            killall linknx
            killall eibd
        }
        Ich hatte vorher für den eibd noch die Optionen -D -S -T angegeben, das war ihm zuviel. Da ich den eibd momentan nicht für externe IP-Zugriffe auf den Knx-Bus verwenden muss, reicht es so.

        Viele Grüße!

        Kommentar

        Lädt...
        X