Matar procesos hijos cuando se invocan con nohup

Versión corta del problema:

¿Alguien sabe como puedo hacer para matar los procesos hijos de uno dado si se ha lanzado con nohup?

Versión detallada:

Supongamos el siguiente script:

#!/bin/bash
echo "hola"
./b &
while (true);
    do sleep 1s;
done;

y este otro:

#!/bin/bash
echo "hola"
while (true);
    do sleep 1s;
done;

Y que se invoca al primero de la siguiente manera:
nohup ./a &

Esto genera dos procesos en segundo plano que son (al cerrar la terminal) hijos del proceso init. Al lanzar el comando anterior se devuelve el pid del proceso a. pej 3126.

Si ahora hago un kill -9 3126 se mata el proceso a, pero el proceso b queda ejecutándose debido al nohup. Este comportamiento difiere del habitual del kill que mata a los procesos hijos de un padre.

¿Alguien sabe como puedo hacer para matar los procesos hijos de uno dado si se ha lanzado con nohup?

Se me ha ocurrido hacerlo así:

kill -9 `ps -fea | grep pidpadre | awk '{print $2}'`

¿Pero hay alguna forma más sencilla?