필요에 따라 네트워크 연결을 투명하게 활성화

필요에 따라 네트워크 연결을 투명하게 활성화

Linux에서는 프로그램이 뒤에서 특별한 일이 벌어지고 있음을 인지하지 못한 채 프로그램이 네트워크 작업(네트워크 연결이 비활성화된 경우 실패함)을 수행하려고 시도하자마자 네트워크 연결을 활성화하는 방법을 찾고 있습니다.

보다 일반적으로 운영 체제가 네트워크 작업이 어떤 이유로 실패할 것이라는 것을 인식할 때 프로그램 이미지를 exec()한 다음 해당 프로그램이 완료될 때까지 기다리고, 결과가 EXIT_SUCCESS이면 네트워크를 다시 시도하는 방법이 있습니까? 작동하다?

답변1

운영 체제가 특정 네트워크 작업이 어떤 이유로 실패할 것이라는 것을 인식한 다음 해당 프로그램이 완료될 때까지 기다렸다가 결과가 EXIT_SUCCESS이면 네트워크 작업을 다시 시도하는 경우 프로그램 이미지를 exec()할 수 있는 방법이 있습니까?

아니요.

요청 시 전화 접속을 사용하는 경우 성공적인 연결로 인해 트리거되지 않는 재시도에 의존합니다. Network unreachableTCP 연결 시도와 같이 즉시 종료되는 오류를 방지하려면 연결을 설정하기 전에 패킷을 삭제하는 기본 경로를 유지하십시오 .

내 생각엔 예전 스타일의 주문형 다이얼도 현재 사용되는 것보다 더 긴 DNS 시간 초과/재시도 횟수에 의존하는 것 같습니다. 최신 시스템에서는 15초 후에 포기합니다.이건 충분히 길지 않은 것 같아.

주문형 다이얼은 완전히 다른 것입니다. 대부분의 경우 이것이 작동할 것이라고 생각합니다.

프로그램은 뒤에서 뭔가 특별한 일이 벌어지고 있다는 사실조차 알아차리지 못합니다.

그럼 난 어떻게 해야 해?

이전 코드를 자세히 살펴보면 그것이 PPP용이라는 것을 확실히 알 수 있을 것입니다. 이는 일부 최신 모바일 데이터 연결에서는 유용할 수도 있고 그렇지 않을 수도 있습니다. 하지만 PPP를 사용하지 않으면 이전 코드를 사용할 수 없습니다. 예를 들어 네트워크 인터페이스에는 기본 경로가 할당되지만 ppp0해당 PPP 데몬은 ondemand이 옵션을 사용하여 실행되므로 필요할 때까지 실제로 연결이 설정되지 않습니다.

관련 정보