Linux Servidor linux

Executando tarefas em segundo plano no Linux

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.

Instalação

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.

Referências:

vivaolinux.com.br

comments powered by Disqus

Assine nossa Newsletter! 🐧

Se una com os assinantes de nossa Newsletter, sempre que tiver postagem nova você será notificado.