시간 제한을 지정했는데도 dig 유틸리티가 무기한 정지되는 이유는 무엇입니까?

시간 제한을 지정했는데도 dig 유틸리티가 무기한 정지되는 이유는 무엇입니까?

dig공용 IP 주소를 찾기 위해 유틸리티를 사용하고 있습니다 .

내가 사용한 명령은 다음과 같습니다.

dig +short myip.opendns.com @resolver1.opendns.com

하지만 다른 컴퓨터에서는 시간이 너무 오래 걸리기 때문에 문제가 있어서 다음을 추가했습니다.5초 후 타임아웃:

dig +short +time=5 +tries=1 myip.opendns.com @resolver1.opendns.com

예상대로 일부에서는 실패하지만 일부 다른 컴퓨터에서는 완료되지 않습니다. 작동이 멈추는 것 뿐입니다...

예상대로 5초 후에 시간 초과가 발생하는 이유와 방법을 아시나요?

편집하다:

이미 시도했지만 timeout여전히 중단됩니다. DNS를 확인하는 동안 멈춘 것 같습니다. 예를 들어, 나는 할 수 없지만 ping www.google.com할 수 있습니다 172.217.20.4.

답변1

일부 유틸리티에서 애플리케이션 시간 초과를 사용하는 경우 연결 문제가 있을 때 애플리케이션이 외부 "강제"에 의해 자체적으로 중지된다는 보장이 항상 있는 것은 아닙니다.

문제가 있는 상황에 대비해 잠시 후 외부 유틸리티를 사용하여 종료합니다.

다음과 같이:

timeout 5 dig +short +time=5 +tries=1 myip.opendns.com @resolver1.opendns.com

에서man timeout

이름 상단

   timeout - run a command with a time limit

시놉시스 상단

   timeout [OPTION] DURATION COMMAND [ARG]...
   timeout [OPTION]

설명 상단

   Start COMMAND, and kill it if still running after DURATION.

관련 정보