Experimente $BASHPID
em vez de $$
. Uma das duas ocorrências de $$
na página man é explicar quando ela difere de $BASHPID
, incluindo "subshells que não requerem bash para serem reinicializadas", o que pode incluir seus processos de função de segundo plano?