Finalize o processo em segundo plano quando outro processo terminar no Linux

Tenho uma pequena pergunta e espero que alguém possa me ajudar porque não consigo encontrar uma solução adequada.

Eu quero resolver um nome de host; enquanto aguarda o resultado, gostaria de imprimir uma notificação se demorar mais de 30 segundos com comandos de script de shell, de preferência comandos internos ou onipresentes do sistema.

Eu tenho um processo em segundo plano que dorme e depois imprime uma mensagem; enquanto dorme, o processo é executadoping, mas não consigo descobrir como eliminar o processo em segundo plano após o término do ping e a mensagem continua sendo impressa, mesmo que o ping termine antes do prazo de 30 segundos, pois isso faz parte de um script maior que leva algum tempo para ser executado.

Aqui está o código que eu tenho usado:

((sleep 30; echo "Querying the DNS server takes more than 30 seconds.") & ping -q -c 1 localhost >/dev/null)

Eu apreciaria muito toda e qualquer ajuda. Outras soluções também são bem-vindas; Eu só quero dizer ao usuário que o DNS está muito lento e isso afetará a execução futura. Eu tentei ping -w ou -W, mas isso não está medindo o tempo de resolução. Eu tentei capturar o resultado do ping. Eu tentei matar todos os processos com o mesmo GPID, mas também está matando o console. Eu não sou o melhor com scripts, talvez seja por isso que isso me leve tanto tempo. Agradeço antecipadamente.

questionAnswers(1)

yourAnswerToTheQuestion