私は少し質問があります。私は適切な解決策を見つけることができないので、誰かが私を助けてくれることを願っています。他のプロセスがLinuxで終了したときにバックグラウンドプロセスを終了させます
ホスト名を解決したい。その結果を待つ間に、シェルスクリプトコマンド、好ましくは組み込みコマンドやユビキタスシステムコマンドで30秒以上かかると通知を出したいと思います。
私はスリープしてからメッセージを印刷するバックグラウンドプロセスを持っています。睡眠中にプロセスはping
を実行しますが、pingが終了した後にバックグラウンドプロセスを強制終了する方法を理解することはできず、大きなスクリプトの一部であるため、30秒の時間制限より前にpingが終了してもメッセージは印刷され続けます実行には時間がかかります。ここで
は、私が使用してきたコードです:
((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
somehostにpingを実行すると、ping自体の前にホストが何らかのIPに解決されます。私はdigやhostの代わりにpingコマンドを使用します(コアパッケージの一部ではありません)。 –