Neste artigo ensino a executar um comando no linux em segundo plano.
É comum ter que executar scripts ou algum comando no Linux através do SSH, as vezes até coisas simples como copiar um arquivo muito grande ou baixar alguma coisa. Com isso temos problemas em finalizar a sessão (deslogar) e encerrar a execução do comando (programa).
Uma solução para este problema é executar os comandos através de um terminal virtual e iremos utilizar o screen, é simples e muito funcional.
Ubuntu/Debian
# apt-get install screen
CentOS/RHEL 6/7
# yum install screen
Execute o comando screen para chamar o terminal virtual, vai abrir uma shell normal, onde pode desconectar do SSH ou deslogar e o comando continuar executando.
Utilizei o htop como comando de exemplo.
# screen
# htop
Com o comando executando, para sair do screen sem que o comando para de funcionar execute o atalho: Ctrl+A+D
Para retomar a sessão do screen, digite o comando abaixo:
# screen -r
Se você tiver mais de uma sessão de terminal, liste as sessões com o comando abaixo:
# screen -ls
Vai aparecer uma lista como essa:
# screen -ls
There are screens on:
2470.pts-0.vm-linuxnaweb (Detached)
2449.pts-0.vm-linuxnaweb (Detached)
Se você abrir o gerenciador de tarefas [htop ou top], perceba que está em execução o que você colocou para executar, executei o # htop para exibir.
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
2470 root 20 0 152M 3080 1588 S 0.0 0.3 0:00.91 watch -n 1 ls -lh /tmp/
2449 root 20 0 122M 2936 1472 S 0.0 0.3 0:00.51 htop
Para restaurar a sessão específica que executou o comando, basta digitar o comando screen -r e coloque o id da sessão.
# screen -r 2470.pts-0.vm-linuxnaweb
O nome da sessão é composta de [PID].[terminal].[servidor] ficando [2470].[pts-0].[vm-linuxnaweb].
Para sair do screen basta deslogar com o atalho: CTRL+D.
Na segunda sessão listada no exemplo acima, o nome é o 2449.pts-0.vm-linuxnaweb.
Esse nome foi definido na hora de criar a sessão do screen, usando
# screen -S 2449.pts-0.vm-linuxnaweb
Isso pode ajudar bastante se você tem várias sessões abertas.
Espero ter ajudado, encontrei esse conteúdo que me ajudou bastante no fórum Viva o Linux e acredito que vai ajudar bastante gente.
Se una com os assinantes de nossa Newsletter, sempre que tiver postagem nova você será notificado.