Pergunta

Então estou executando o PPP no Linux com um modem celular.O programa que estou escrevendo precisa saber se o link está ativo antes de enviar qualquer dado.

Quais são minhas opções para verificar

  • se o link estiver disponível
  • se for roteado para um servidor que eu controlo (não vai para a internet como eu disse antes)

Além disso, qual é a melhor maneira de reiniciá-lo - gostaria de ter controle do programa sobre quando ele inicia e para, então presumo que um init.d não seja apropriado.Usando system() não parece fornecer um PID, existem outras opções além fork() e o bando de exec??() chamadas?

C no Linux em ARM (distribuição personalizada usando buildroot).

Foi útil?

Solução

Você pode usar o ip-up funcionalidade de script do pppd para que ele execute um programa quando a interface IP estiver ativa e pronta.Os detalhes estão no Página de manual do pppd(8) - procure por "ip-up".

Para reiniciar o pppd, use o linkname parâmetro para definir um nome de arquivo pid conhecido (/var/run/ppp-name.pid).Use também o persist opção.Quando você quiser reiniciar o pppd, envie o SIGHUP sinal.Novamente, isso é descrito na página de manual.

Outras dicas

Você poderia analisar /proc/net/route.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top