• Sobre
  • FAQ
  • Enviar artigo
  • Anuncie aqui
segunda-feira, maio 23, 2022
Linux Descomplicado
  • Iniciante
  • Dicas
  • Saiba Como
  • Notícias
  • Contato
No Result
View All Result
  • Iniciante
  • Dicas
  • Saiba Como
  • Notícias
  • Contato
No Result
View All Result
Linux Descomplicado
No Result
View All Result
Home Comandos Linux
Tarefa em segundo plano

Saiba como manter um comando executando mesmo depois de encerrar uma sessão remota SSH

10 de janeiro de 2019
5 min read
0 0
2
Saiba como manter um comando executando mesmo depois de encerrar uma sessão remota SSH
83
SHARES
24.2k
VIEWS
Compartilhar no FacebookCompartilhar no Twitter

Supondo que esteja acessando um outro sistema remotamente via SSH e deseja executar um comando que leva muito tempo para terminar e, em seguida, precise sair sessão SSH. Como deixar o comando em execução mesmo se você não estiver mais conectado com o sistema remoto? É simples, mas já deve ter percebido que ao encerrar uma sessão SSH todos os trabalhos em execução serão encerrados também. Então, saiba como manter um comando executando mesmo depois de encerrar uma sessão remota SSH.

Contextualizando

Todo comando linux executado cria um processo em execução no sistema. Diante disso, afirmo que, basicamente, os processos podem ser executados de duas formas: em foreground (primeiro plano) ou background (segundo plano).

LeituraRecomendada

Saiba como copiar um disco de uma máquina para outra via SSH

Saiba como copiar um disco de uma máquina para outra via SSH

12 de junho de 2019
Saiba como executar aplicações gráficas remotamente através de uma conexão SSH

Saiba como executar aplicações gráficas remotamente através de uma conexão SSH

2 de setembro de 2019

foreground-background-linux

Os processos executado em foreground são aqueles que necessitam de interação direta com o usuário, incluindo troca de informações e “exclusividade” da console de terminal. Por outro lado, os processo em background não necessitam desta interação com o usuário, permanecendo em execução mesmo sem a interação do usuário e liberando a console de terminal para outras as atividades, por exemplo.

Essa possibilidade é fundamental para um bom controle da execução dos processos iniciados pelo usuário do sistema. Pois, muitas vezes é preciso passar um processo que está sendo executado em primeiro plano (foreground) para segundo plano (background) e/ou vice-versa. Por exemplo, numa sessão de transferência de arquivos entre máquinas remotas, o tempo de transferência pode levar horas. Neste caso, seria interessante “passar” o processo para segundo plano, liberando a shell para outras atividades do usuário – caso não queira iniciar outra console de terminal 🙂

Isto é muito bom quando temos acesso direto ao terminal local. Contudo, no cenário de acesso remoto via SSH, mesmo o processo sendo executado em segundo plano, o resultado é ao encerrar a sessão SSH o processo também seja encerrado – perdendo todo o trabalho feito por ele 🙁

RECOMENDO QUE LEIA
Saiba como executar aplicações gráficas remotamente através de uma conexão SSH
Saiba como copiar um disco de uma máquina para outra via SSH
Saiba como realizar backup incremental usando a ferramenta rsync via ssh

Isto acontece por que uma shell, que é o processo pai de todos os outros que estejam rodando em segundo plano — no terminal ou na sessão SSH – envia um SIGINT a todos os seus processos filhos, antes de ela mesma se finalizar. Via EliasPraciano

Manter processo em execução numa sessão SSH

AVISO
Toda as vezes que eu referenciar a shell Linux estou falando do bash. Pois, ela foi usado para os exemplos contidos nesse tutorial.O comando a ser mostrado será o wget – realiza download de dados da web.

O objetivo desse tutorial é executar uma tarefa em segundo plano e mantê-la ativa, mesmo depois de encerrar a sessão SSH. Portanto, é preciso ter uma máquina virtual ou sistema remoto para acessar via SSH para pôr em prática os exemplos.

Assim, apresento alguns métodos:

1 – Nohup

No hangup (Nohup) é um utilitário de linha de comando que mantém em execução comandos do Linux mesmo depois de desconectar sessões remotas SSH. Como ele faz parte do GNU coreutils você não precisa instalá-lo. Ele vem pré-instalado em todas as distribuições Linux 🙂

RECOMENDO QUE LEIA
Conheça todos os elementos que formam a estrutura do sistema Linux

O uso é simples e fácil. Depois de entrar no seu sistema remoto via SSH, tudo o que você precisa fazer é:

nohup wget http://mirror.waia.asn.au/ubuntu-releases/xenial/ubuntu-16.04.2-desktop-amd64.iso &

Onde, você antecede ao comando desejado (no caso wget) o utilitário nohup. No final do comando, você usa o ‘&’ para indicar que o processo será executado em segundo plano (background). Durante a execução do comando um arquivo chamado ‘nohup.out’ é criado. Ele contém os logs de execução do comando.

Observe que é preciso colocar o comando em background utilizando o “&” no fim do comando. Caso você esqueça de colocá-lo, então pode usar o conjunto de teclas “CTRL+Z” e depois executar “bg” que o programa vai pra background também – enquanto não executar o `bg` o programa vai ficar parado.

Pronto!! Agora, você pode sair da sessão SSH. O comando remoto continuará funcionando até concluir sua tarefa – no caso baixar a imagem ISO do Ubuntu 🙂

Para mais informações sobre o comando nohup consulte a documentação oficial (man nohup)

2 – Screen

O screen é um multiplexador de terminais que permite ao usuário, em uma mesma sessão, abrir várias janelas e realizar atividades paralelas. Ou seja, as “janelas que ele cria” estão dentro de uma mesma sessão e isso é muito útil. Por exemplo, numa única sessão remota via SSH, várias sessões virtuais poderão ser iniciadas em conjunto.

RECOMENDO QUE LEIA
Administrando múltiplos terminais virtuais usando a ferramenta screen

Caso não esteja disponível em seu sistema Linux, a ferramenta screen poderá ser instalada através do comando:

Para Debian e derivados:

apt-get install screen

Para RedHat e derivados:

yum install screen

Assim, depois de instalado e sabendo que precisa realizar um download via wget e não pode esperá-lo concluir para fazer outra tarefa por estar em uma conexão SSH, por exemplo, abra uma sessão utilizando o comando abaixo:

screen

Posteriormente, inicie o download do arquivo em questão:

wget http://mirror.waia.asn.au/ubuntu-releases/xenial/ubuntu-16.04.2-desktop-amd64.iso
Observe que não foi preciso usar o “&” no final do comando. O comando ‘screen’ garantiu o início de uma sessão em segundo plano (background)

Enquanto o download é feito, você deve pressionar as teclas CTRL+A+D. Essa combinação de teclas fará com que essa sessão virtual seja “separada” (detached) da sessão original; liberando por consequência o terminal para realização de outra tarefa:

[detached from [email protected]] [email protected] ~ $

Assim, para listar as sessões abertas execute o comando:

screen -ls

Diante dessa situação, caso sua conexão SSH falhe ou precise encerrá-la; basta você reconectar e executar o comando anterior (screen -ls) para ter uma visão de quantas sessões estão criadas.

Por fim, depois de “separar” (detach) a janela (screen); você desejará restaurar a sessão para saber se seu download está concluído. Para essa operação, execute o comando:

screen -r

E para retornar ao terminal “real” execute exit.

Para mais informações sobre o comando screen consulte a documentação oficial (man screen) ou AQUI.

Por fim, como opção semelhante ao screen existe o tmux. Caso queira conhecê-lo, veja AQUI 🙂


Via | OsTechNix

Tags: backgroundprocesso execuçãossh

Gosta de Linux?! Receba materiais exclusivos!

Inscreva-se gratuitamente e receba, com exclusividade, postagens e materiais ocultos para o público em geral. Inclusive, promoções e novidades em primeira mão!

Entrar na lista de e-mails

Related Posts

Saiba como copiar um disco de uma máquina para outra via SSH
Comandos Linux

Saiba como copiar um disco de uma máquina para outra via SSH

12 de junho de 2019
Saiba como executar aplicações gráficas remotamente através de uma conexão SSH
Saiba Como

Saiba como executar aplicações gráficas remotamente através de uma conexão SSH

2 de setembro de 2019
Saiba como realizar backup incremental usando a ferramenta rsync via ssh
Administradores de Rede

Saiba como realizar backup incremental usando a ferramenta rsync via ssh

6 de julho de 2019

Últimas novidades

Metaverso: o que precisamos entender sobre esse conceito

Metaverso: o que precisamos entender sobre esse conceito

by Linux Descomplicado
23 de maio de 2022
0

Se um dia alguém dissesse ser possível combinar realidade virtual imersiva, MMORPG e web, isso seria chamado insanidade. No entanto,...

Mods ganham espaço em GTA V, mas ainda não chegam aos usuários de Linux

Mods ganham espaço em GTA V, mas ainda não chegam aos usuários de Linux

by Linux Descomplicado
28 de fevereiro de 2022
0

O jogo Grand Theft Auto V é um dos mais populares entre os usuários de Linux. O desempenho na plataforma...

Samsung Galaxy M52 5G: Design elegante e bateria gigante

Samsung Galaxy M52 5G: Design elegante e bateria gigante

by Linux Descomplicado
20 de outubro de 2021
0

A Samsung lançou recentemente um novo modelo na categoria intermediário premium nomercado Indiano: o Galaxy M52 5G. Ele pode ser...

O avanço da tecnologia 5G na vida dos brasileiros

O avanço da tecnologia 5G na vida dos brasileiros

by Linux Descomplicado
17 de agosto de 2021
0

O que é o 5G e como anda esta tecnologia no Brasil?

Linux se mantém estável entre os gamers que usam o sistema na Steam

Linux se mantém estável entre os gamers que usam o sistema na Steam

by Linux Descomplicado
5 de maio de 2021
0

O sistema Linux nunca foi um projeto que chamou a atenção dos fãs de games, principalmente para os usuários da...

Load More

Publicaçõesmais recentes

Metaverso: o que precisamos entender sobre esse conceito
Noticias

Metaverso: o que precisamos entender sobre esse conceito

by Linux Descomplicado
23 de maio de 2022
0

Se um dia alguém dissesse ser possível combinar realidade virtual imersiva, MMORPG e web, isso seria chamado insanidade. No entanto,...

Read more
Curso Programador Full Stack JavaScript Profissional vale pena?  Devo comprar?
Destaques

Curso Programador Full Stack JavaScript Profissional vale pena? Devo comprar?

by Linux Descomplicado
13 de maio de 2022
0

Muitas pessoas vêm me perguntando sobre o curso Programador Full Stack JavaScript Profissional. Por isso, decidi escrever sobre e falar...

Read more
Ainda vale a pena aprender Docker ?!
Programadores

Ainda vale a pena aprender Docker ?!

by Linux Descomplicado
13 de março de 2022
0

Em 2020, quando a Google decidiu definir o suporte ao Docker como 'deprecated', a partir da versão 1.20 do Kubernetes,...

Read more
Mods ganham espaço em GTA V, mas ainda não chegam aos usuários de Linux
Noticias

Mods ganham espaço em GTA V, mas ainda não chegam aos usuários de Linux

by Linux Descomplicado
28 de fevereiro de 2022
0

O jogo Grand Theft Auto V é um dos mais populares entre os usuários de Linux. O desempenho na plataforma...

Read more
Conheça a Vagrant e ganhe tempo nos seus estudos
Administradores de Rede

Conheça a Vagrant e ganhe tempo nos seus estudos

by Linux Descomplicado
17 de fevereiro de 2022
0

Vagrant é uma ferramenta open source de automação escrita em Ruby e mantida pela HashiCorp que padroniza seu trabalho e...

Read more
Marketing Digital: o que é SEO e qual sua importância para sua empresa?
Dicas

Marketing Digital: o que é SEO e qual sua importância para sua empresa?

by Linux Descomplicado
10 de março de 2022
0

Com o passar do tempo e o consequente avanço da tecnologia, que se reflete em praticamente todos os setores da...

Read more
Load More

Mantenha-se conectado

  • Área Exclusiva 200 Membros
  • 23k Fãs
  • 8k Seguidores
  • 500 Leitores
  • 100 Seguidores
  • 1k Inscritos
  • 2k Leitores

Quer receber as novidades mais recentes no seu e-mail? Informe-o no campo de e-mail e clique em Assinar! Mais de 2000 já se inscreveram

*Sem spam, eu prometo :).

ATENÇÃO
Os comentários abaixo são de inteira responsabilidade de seus respectivos autores e não representam, necessariamente, a opinião do Linux Descomplicado.

Discussion about this post

O Linux Descomplicado nasceu, em 2011, com o intuito de trazer informações relevantes e promover fácil acesso a todos usuários interessados em aprender a usar o sistema Linux, independentemente se está iniciando ou tem certa experiência com Linux.

Participe

  • Publique seu artigo
  • Login como articulista
  • Pesquisa – sobre os leitores

Editorial

  • Contato
  • Anuncie aqui
  • Política de privacidade

Newsletter

Quer receber as novidades mais recentes no seu e-mail? Informe-o no campo de e-mail e clique em Assinar! Mais de 2000 já se inscreveram

*Sem spam, eu prometo :).

Promoções e materiais exclusivos!

Cadastre-se gratuitamente
  • Sobre
  • FAQ
  • Anuncie aqui
  • Enviar artigo
  • Política de privacidade
  • Termos de uso

CC BY-NC-SA 4.0 Copyleft | Compartilhe livremente! Você só precisa informar o autor e criar conteúdo com a mesma licença para poder usá-lo. 2011-2019 Linux Descomplicado

  • Login
No Result
View All Result
  • Iniciante
  • Dicas
  • Saiba Como
  • Noticias

CC BY-NC-SA 4.0 Copyleft | Compartilhe livremente! Você só precisa informar o autor e criar conteúdo com a mesma licença para poder usá-lo. 2011-2019 Linux Descomplicado

Welcome Back!

Login to your account below

Forgotten Password?

Create New Account!

Fill the forms bellow to register

* Ao cadastrar-se, você estará automaticamente ciente e concordando com Política de Privacidade e Termos de uso do site.
All fields are required. Log In

Retrieve your password

Please enter your username or email address to reset your password.

Log In