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?