Elimina el proceso en segundo plano cuando otro proceso termina en Linux

Tengo una pequeña pregunta y espero que alguien pueda ayudarme porque no puedo encontrar una solución adecuada.

Quiero resolver un nombre de host; mientras espero el resultado, me gustaría imprimir una notificación si toma más de 30 segundos con comandos de script de shell, preferiblemente integrados o comandos de sistema ubicuos.

Tengo un proceso en segundo plano que duerme y luego imprime un mensaje; mientras duerme, el proceso se ejecutaping, pero no puedo encontrar la manera de eliminar el proceso en segundo plano una vez que finaliza el ping y el mensaje se sigue imprimiendo incluso si el ping finaliza antes del límite de tiempo de 30 segundos, ya que esto es parte de un script más grande que tarda un tiempo en ejecutarse.

Aquí está el código que he estado usando:

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

Agradecería mucho cualquier ayuda. Otras soluciones son bienvenidas también; Solo quiero decirle al usuario que el DNS es demasiado lento y esto afectará la ejecución posterior. He intentado hacer ping -w o -W pero esto no mide el tiempo de resolución. He tratado de atrapar el resultado del ping. He intentado matar todos los procesos con el mismo GPID pero también está matando la consola. No soy el mejor con los guiones, tal vez esta es la razón por la que me lleva tanto tiempo. Gracias de antemano.

Respuestas a la pregunta(1)

Su respuesta a la pregunta