Pregunta

Entonces estoy ejecutando PPP en Linux con un módem celular.El programa que estoy escribiendo necesita saber si el enlace está activo antes de enviar cualquier dato.

¿Cuáles son mis opciones para verificar?

  • si el enlace esta disponible
  • si se enruta a un servidor que controlo (no va a Internet como dije antes)

Además, ¿cuál es la mejor manera de reiniciarlo? Me gustaría tener control del programa sobre cuándo se inicia y se detiene, por lo que supongo que un init.d no es apropiado.Usando system() no parece dar un PID, ¿hay otras opciones además? fork() y la manada de exec??() llamadas?

C en Linux en ARM (distribución personalizada usando buildroot).

¿Fue útil?

Solución

Puedes usar el ip-up funcionalidad de script de pppd para que ejecute un programa cuando la interfaz IP esté activa y lista.Los detalles están en el página de manual pppd(8) - busque "ip-up".

Para reiniciar pppd, utilice el linkname parámetro para establecer un nombre de archivo pid conocido (/var/run/ppp-name.pid).Utilice también el persist opción.Cuando desee reiniciar pppd, envíe el SIGHUP señal.Nuevamente, esto se describe en la página de manual.

Otros consejos

Podrías analizar /proc/net/route.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top