Zwei Programme in Abhängigkeit starten

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    folgendes Problem

    Ich benötige zwei VPN Verbindungen, Problem ist das VPN1 das Routing von VPN2 überschreibt, daher muss dieser als erstes eine Verbindung aufbauen um erst dann die VPN2 Verbinding aufzubauen, habe mich selbst mal daran gewagt, aber leider funktioniert es noch nicht wie es sollte.

    Statt sleep 90 müsste halt gewartet werden, bis sich die VPN wirklich aufgebaut hat, hatte zwar noch den Tip bekommen über eine Schleife abzufragen ob in der /etc/init.d/openvpn status running auftaucht, weiß allerdings nicht wie ich dies bewergstelligen soll und bin daher um Hilfe dankbar.

    Gruß
    Jeremy

  • Mal abgesehen davon, dass ich es eher für unwahrscheinlich halte, dass Du den Status running abfragen kannst (schau mal die Ausgabe von top an - da ist nur to als R gekennzeichnet, alle anderen sind im Status S) - der Timeslice ist einfach zu klein.
    Ich würde da erstmal beide scripts starten.
    Der erste richtet das Routing ein und wenn es steht, schreibt er einen entsprechenden Status in eine Datei.
    Der zweite wartet, bis diese Datei exisitiert und den richtigen Status hat.

    Voila ...

    cu,
    -ds-

  • Sehe grad noch ein weiteres Problem wenn einer der NL VPNs nicht erreichbar ist, springt er derzeit auch gar nicht weiter zum nächsten :-\

    Evt. kann man die log Datei auslesen und dort den success Status benutzen, müsste dann aber auch noch ein timestamp machen (quatsch einfach vorher die alte log Datei entfernen ;) ). nur ist das machbar einen string aus einer Datei auszulesen, wenn ja wie? (am besten zeitlich begrenzt um bei nichteintreten zum nächsten NL VPN zu springen) und sobald der success in der log auftaucht den vpn starten.

  • Klar kannst Du einen string lesen, z.B. mit: VAR=`cat filename` ... oder awk oder ...
    Frage ist halt, ob Du einen string lesen musst ... imho reicht OK und FAILED oder S und E vollkommen aus.
    Evtl. eine Steuerungsebene drüberlegen, der dann das letzte Script mit den passenden Parametern aufruft und vorher die vorhandenen Routen - waren das, oder - prüft.

    Es ist, zumindest wie ich finde, eine gute Strategie, erstmal alles in einfache Ablaufschritte zu unterteilen und nicht den Superprozess schlechthin zu schreiben. So eine eierlegende Wollmilchsau ist imho irgendwann nicht mehr so recht durchschaubar - erst recht nicht, wenn inzwischen einige Monate oder gar Jahre vergangen sind.

    cu,
    -ds-

  • Hallo Jeremy,

    schau Dir mal bei Deinem Skript die "elif" Zeilen an: "$? -eq 0".
    Wenn der Status beim "if" ungleich 0 ist, ist er es automatisch auch bei den beiden "elif"-Zeilen. Es wurde ja nichts mehr ausgeführt, folglich hat sich der Status nicht geändert. ;)

    Deine beiden "elif" Bedingungen werden so NIE zutreffen.

    Gruß, mmi


  • Code
    [ ok ] Starting virtual private network daemon: NL5.
    [ ok ] Stopping virtual private network daemon: NL5.
    [ ok ] Starting virtual private network daemon: NL6.
    Sat Jun  7 13:32:30 2014 us=245268 Initialization Sequence Completed
    [ ok ] Starting virtual private network daemon: vpn.

    So funktioniert es hoffe ist nun kein Denkfehler mehr drinne

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!