2008-09-09 9 views
3

Also ich bin PPP unter Linux mit einem Mobilfunkmodem laufen. Das Programm, das ich schreibe, muss wissen, ob die Verbindung aktiv ist, bevor irgendwelche Daten gesendet werden.Überprüfen des Netzwerkstatus und Steuern von PPP in einem Programm

Was sind meine Optionen

  • zu überprüfen, ob der Link verfügbar ist
  • wenn es Routen zu einem Server ich steuern (es ist nicht auf das Internet geht, wie ich bereits sagte)

Auch, was ist der beste Weg, um es neu zu starten - Ich hätte gerne Programmsteuerung, wenn es startet und stoppt, so dass ein init.d ist nicht angemessen. Using system() scheint keine PID zu geben, gibt es andere Optionen neben fork() und die Schar von exec??() Anrufe?

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

+0

@Adam: Rep Neukalibrierung abgeschlossen. Entschuldigung für dich Verlust. :( –

+0

Oh hey, danke, der Verlust war minimal. Ich dachte ehrlich, es wäre viel größer mit allem, was mit der Zeit migriert wurde. –

Antwort

6

Sie können die Skriptfunktion ip-up von pppd verwenden, um ein Programm auszuführen, wenn die IP-Schnittstelle bereit und betriebsbereit ist. Details sind in der pppd(8) man page - Suche nach "ip-up".

Um pppd neu zu starten, verwenden Sie den Parameter linkname, um einen bekannten Pidfile-Namen (/var/run/ppp-name.pid) festzulegen. Verwenden Sie auch die Option persist. Wenn Sie pppd neu starten möchten, senden Sie das SIGHUP Signal. Auch dies wird in der man-Seite beschrieben.

3

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