Boa resposta já foi postada por @StevenD, mas acho que isso pode esclarecer um pouco mais.
A razão pela qual o processo é eliminado na terminação do terminal é que o processo que você inicia é um processo filho do terminal. Depois de fechar o terminal, isso também matará esses processos filhos. Você pode ver a árvore de processos com pstree
, por exemplo, ao executar kate &
no Konsole:
init-+
├─konsole─┬─bash─┬─kate───2*[{kate}]
│ │ └─pstree
│ └─2*[{konsole}]
Para tornar o processo kate
desvinculado de konsole
quando você terminar konsole
, use nohup
com o comando, assim:
nohup kate &
Depois de fechar konsole
, pstree
ficará assim:
init-+
|-kate---2*[{kate}]
e kate
sobreviverão. :)
Uma alternativa é usar screen
/ tmux
/ byobu
, que manterá o shell em execução, independentemente do terminal.