A pergunta é sobre dois tipos de programas:
- programas que interagem com o usuário no shell e
- programas que não não interagem com o usuário no shell.
No primeiro caso, os programas que interagem com o usuário no shell são projetados para serem concluídos antes de retornar o controle ao shell. Nada de especial é feito.
O segundo caso é mais complicado. Tipicamente o programa irá garfo (fazendo uma cópia de si mesmo na memória), e arranjará para remover sua associação com o terminal de controle do shell , e poderá executar outro programa - que é executado independentemente do shell original. Você pode ver mensagens do segundo programa, mas geralmente não interage com você. Dependendo de como é usado, você pode ter
- um processo daemon (servidor) ou
- o programa pode ser executado em uma nova janela. Editores gráficos fazem o último.
Leitura adicional: