O kernel do Linux tem um componente chamado OOM killer (sem memória). Como Patrick apontou nos comentários, o killer da OOM pode ser desabilitado, mas a configuração padrão é permitir o overcommit (e, portanto, habilitar o killer da OOM).
As aplicações pedem ao kernel mais memória e o kernel pode se recusar a fornecê-lo (porque não há memória suficiente ou porque ulimit
foi usado para negar mais memória ao processo). Se overcommit for ativado, um aplicativo pediu por alguma memória e recebeu a quantia, mas se o aplicativo gravar em uma nova página de memória (pela primeira vez) e o kernel tiver que alocar memória para isso, mas não puder fazer isso, o kernel tem que decidir qual processo matar para liberar memória.
O kernel prefere matar novos processos que os antigos, especialmente aqueles que (junto com seus filhos) consomem muita memória. Então, no seu caso, o novo processo pode começar, mas provavelmente seria o que seria morto.
Você pode usar os arquivos
/proc/self/oom_adj
/proc/self/oom_score
/proc/self/oom_score_adj
para verificar as configurações atuais e dizer ao kernel em que ordem deve matar os processos, se necessário.