我有一個小問題,我希望有人能幫助我,因爲我找不到合適的解決方案。當Linux中的另一個進程結束時終止後臺進程
我想解析一個主機名;在等待結果時,如果需要超過30秒的shell腳本命令,最好是內置的或無處不在的系統命令,我想打印一個通知。
我有一個後臺進程,睡覺,然後打印一條消息;在進入睡眠狀態時,進程運行ping
,但我無法弄清楚如何在ping完成後終止後臺進程,並且即使ping在30秒的時間限制之前結束,也會繼續打印消息,因爲這是更大腳本的一部分這需要一些時間來運行。
下面是我一直使用的代碼:
((sleep 30; echo "Querying the DNS server takes more than 30 seconds.") & ping -q -c 1 localhost >/dev/null)
我將不勝感激任何和所有幫助。也歡迎其他解決方案;我只是想告訴用戶DNS太慢,這會影響進一步的執行。我已經嘗試了ping -w或-W,但這不是測量分辨率的時間。我試圖捕獲ping的結果。我試圖殺死具有相同GPID的所有進程,但它也正在殺死控制檯。我不是最好的腳本,也許這就是爲什麼這需要我很多時間。先謝謝你。
這看起來像一個問題https://superuser.com/ – Veltro
我不明白你有什麼問題。你爲什麼要談論「解決一些主機名」,然後你談論「ping」。 – Jdamian
當您執行ping某個主機時,在ping本身之前主機解析爲某個IP。我使用ping命令而不是dig或host(它們不是核心軟件包的一部分)來衡量分辨率有多慢。 –