Frage

Ich verwende also PPP unter Linux mit einem Mobilfunkmodem.Das Programm, das ich schreibe, muss wissen, ob der Link aktiv ist, bevor es Daten sendet.

Welche Möglichkeiten habe ich zu prüfen?

  • wenn der Link verfügbar ist
  • wenn es an einen Server weitergeleitet wird, den ich kontrolliere (es geht nicht ins Internet, wie ich bereits sagte)

Außerdem: Was ist der beste Weg, es neu zu starten? Ich möchte die Programmkontrolle darüber haben, wann es startet und stoppt, daher gehe ich davon aus, dass ein init.d nicht geeignet ist.Benutzen system() Scheint keine PID zu geben. Gibt es darüber hinaus noch andere Optionen? fork() und die Schar von exec??() Anrufe?

C unter Linux auf ARM (benutzerdefinierte Verteilung mit Buildroot).

War es hilfreich?

Lösung

Du kannst den ... benutzen ip-up Skriptfunktionalität von pppd, damit es ein Programm ausführt, wenn die IP-Schnittstelle aktiv und bereit ist.Einzelheiten finden Sie im pppd(8) Manpage - Suchen Sie nach „ip-up“.

Um pppd neu zu starten, verwenden Sie die linkname Parameter zum Festlegen eines bekannten PID-Dateinamens (/var/run/ppp-name.pid).Nutzen Sie auch die persist Möglichkeit.Wenn Sie pppd neu starten möchten, senden Sie die SIGHUP Signal.Auch dies wird in der Manpage beschrieben.

Andere Tipps

Sie könnten analysieren /proc/net/route.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top