Após fazer o logoff ou sair de um shell que deu início a um programa, sabemos que o comando em questão também será encerrado. Nesta dica, apresentaremos como fazer um comando em execução no Linux, permanecer, mesmo após o logoff ou fechar o shell que deu início. Isto vale e funciona inclusive com sessões SSH.
Para isto, os passos necessários são:
- No shell onde o comando foi executado:
- Se estiver em foreground (travando a linha de comando)
- Pause o programa ou comando em execução
- (CTRL+Z)
- Execute o comando para impedir que o programa seja fechado ao se fechar o shell (ignorar o sinal SIGHUP, enviado ao efetuar o logout)
- disown -h %jobid
- (jobid é o número apresentado [%jobid] quando você apertou CTRL+Z)
- disown -h %jobid
- Execute o comando para voltar a rodar o programa, mas agora, em background (segundo plano)
- bg %jobid
- Pause o programa ou comando em execução
- Se o programa estiver em background (não estiver travando a linha de comando, executando em segundo plano)
- Execute o comando:
- jobs
- Verifique o número jobid do programa em execução desejado
- Execute o comando para impedir que o programa seja fechado ao se fechar o shell (ignorar o sinal SIGHUP, enviado ao efetuar o logout)
- disown -h %jobid
- (jobid é o número apresentado [%jobid] quando você apertou CTRL+Z)
- disown -h %jobid
- Execute o comando para voltar a rodar o programa, mas agora, em background (segundo plano)
- bg %jobid
- Execute o comando:
- Se estiver em foreground (travando a linha de comando)
E pronto! Seu programa / comando shell permanecerá em execução mesmo após você fechar o shell.