为什么即使指定了超时,挖掘实用程序也会无限期挂起?

为什么即使指定了超时,挖掘实用程序也会无限期挂起?

我正在使用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.

相关内容