Quando você fornece &
no final, ele entra em segundo plano. Se é ou não morto, depende de como você fecha o terminal.
Se você fechar a própria aplicação do terminal ( Ctrl + F4 , pressione x na decoração da janela, ou Shift + Ctrl + W para gnome-terminal
), mata o processo em segundo plano.
Mas se você fechar o terminal usando exit
ou Ctrl + D , ele continuará a ser executado, mesmo que você efetue logout (a menos que seja um aplicativo GUI) . Isso terminará quando você desligar.
(Eu não sei porque há uma diferença entre os dois. Eu suspeito que quando você fecha o aplicativo, o sistema operacional o fecha e seus filhos.)
O seguinte é diferente:
nohup while :; do sleep 1; date +%s; done &
O comando nohup
desconecta-o do terminal. No entanto, você fecha o terminal, o comando continuará a ser executado até que você desligue (o logoff não seja suficiente) ou mate o comando manualmente.
Quando você usa nohup
, a saída vai para ~/nohup.out
, a menos que você redirecione manualmente a saída.
P.S. O comando não funcionará com nohup
dado, porque nohup
não aceita um comando composto. Mas você poderia fazer o script e executar o script com nohup
.
P.P.S. É mais fácil ver o que está acontecendo, executando uma GUI. Em vez do comando while
…, eu corro isto:
gcalctool &
Muito mais rápido e fácil de ver o que está acontecendo, já que a calculadora desaparece quando é morta; e você pode matá-lo facilmente (basta fechar a calculadora).