Überprüfen des Netzwerkstatus und Steuern von PPP in einem Programm
-
09-06-2019 - |
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).
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
.