為什麼即使指定了超時,挖掘實用程式也會無限期掛起?

為什麼即使指定了超時,挖掘實用程式也會無限期掛起?

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

相關內容