Executar comando em segundo plano

Existem situações onde precisamos iniciar um processo manualmente em segundo plano, como por exemplo, inicializar um servidor web. O problema é que o processo fica preso na tela do console nos impossibilitando de utilizar a mesma sessão, e o pior: quando o acesso é remoto ( ssh ) , e você não pode fechar o terminal para não encerrar o processo.
Uma das formas de resolver este problema é usando o “&” ao fim do comando (ainda não resolve para ssh)

edgard$ sleep 3&
[1] 16129

Sera exibido na tela o spid do processo e o console fica imediatamente livre para digitação, e após 3 segundos é impresso na tela a informação de que o processo foi finalizado.

[1]+  Exit 127                $ sleep 2

Outro problema é com o uso do acesso remoto (ssh) que quando fechamos a aplicação ( se for windows o put por exemplo) , processo é finalizado. Para resolver este problema, utilizaremos o aplicativo nohup.
Ex.:

nohup sleep 3&

Além de executar o processo em segundo plano, o nohup envia toda a saida (stdout) para o arquivo nohup.out que estará na pasta corrente.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *