Eu entendo a man page de getrlimit(2)
dizendo que ela limita o número de threads (não relevante aqui) que pode ser executado como usuário real.
Eu não tenho certeza se entendi o que você está fazendo, então fique comigo. Você inicia um programa que leva o script listado e o executa como filho. Enquanto isso, você executa ps
para verificar os PIDs?
O shell que o usuário está executando é certamente um, o programa inicia o script em outro, depois há o script sendo executado e o ps faz 5. Se agora o ps tentar iniciar um thread para seus propósitos internos, ele falhará devido a até o limite de 5 processos.
O que você descreve parece algum tipo de experiência para ver como fazer algo. Que problema você está realmente tentando resolver? Sem saber o que é isso, não há como sugerir alternativas melhores (ou dizer como fazer o que você quer).