Question

J'utilise donc PPP sous Linux avec un modem cellulaire.Le programme que j'écris doit savoir si le lien est actif avant d'envoyer des données.

Quelles sont mes options pour vérifier

  • si le lien est disponible
  • s'il est acheminé vers un serveur que je contrôle (il ne va pas sur Internet comme je l'ai dit plus tôt)

De plus, quelle est la meilleure façon de le redémarrer - j'aimerais avoir le contrôle du programme sur le moment où il démarre et s'arrête, donc je suppose qu'un init.d n'est pas approprié.En utilisant system() ne semble pas donner de PID, existe-t-il d'autres options en plus fork() et le troupeau de exec??() appels?

C sous Linux sur ARM (distribution personnalisée utilisant buildroot).

Était-ce utile?

La solution

Vous pouvez utiliser le ip-up fonctionnalité de script de pppd pour lui permettre d'exécuter un programme lorsque l'interface IP est opérationnelle et prête.Les détails sont dans le page de manuel pppd(8) - recherchez "ip-up".

Pour redémarrer pppd, utilisez le linkname paramètre pour définir un nom de fichier pid connu (/var/run/ppp-name.pid).Utilisez également le persist option.Lorsque vous souhaitez redémarrer pppd, envoyez le SIGHUP signal.Encore une fois, ceci est décrit dans la page de manuel.

Autres conseils

Vous pourriez analyser /proc/net/route.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top