O terminal é um visualizador de um processo como o shell. O terminal em si não executa nenhum comando - esse é o propósito do shell - mas sem o terminal você não pode interagir com o shell ou qualquer outro programa executado.
Normalmente, quando você fecha uma janela de terminal, ele envia um sinal ao shell para que ele feche, o que, por sua vez, elimina qualquer processo que você possa ter executado lá.
Você pode executar um processo em screen
. O que isto faz é criar um "terminal virtual" para a execução de um shell. Sua janela de terminal "real" pode ser anexada a essa sessão screen
e controlar o terminal virtual que screen
forneceu. O efeito líquido é que parece perfeitamente normal, MAS você também pode se desconectar da tela virtual e deixar o shell continuar rodando.
screen # Create a leader and a virtual terminal/screen running a shell
screen -ls # List sessions (attached/detached)
screen -r # Reattach to the single detached session
screen -r {identifier} # Reattach to the named detached session
screen -md {command...} # Make a new detached session running {command...}
Finalmente, Ctrl A d desanexa da sessão atual e Ctrl A ? mostra a lista de comandos interativos.