quarta-feira, janeiro 10, 2024
  • Login
Linux Descomplicado
Advertisement
No Result
View All Result
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
Reading Time: 5 mins read
2
Saiba como manter um comando executando mesmo depois de encerrar uma sessão remota SSH
83
SHARES
32.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).

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 13223.pts-0.ricardo@localhost] ricardo@localhost ~ $

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

A Emoção dos Bônus de Sorteio Semanal no BC Games: Como Aumentar Suas Chances de Vitória

by Linux Descomplicado
7 de novembro de 2023
0

O mundo dos jogos online é vasto e repleto de oportunidades para diversão e, às vezes, recompensas financeiras. Entre esses...

Jogos no Metaverso: Explorando a próxima fronteira dos mundos virtuais

Jogos no Metaverso: Explorando a próxima fronteira dos mundos virtuais

by Linux Descomplicado
30 de agosto de 2023
0

Nos últimos anos, o mundo dos jogos vem passando por uma revolução que está redefinindo a forma como entendemos os...

Saiba como acompanhar os jogos da Copa do Mundo no Linux

Saiba como acompanhar os jogos da Copa do Mundo no Linux

by Linux Descomplicado
14 de outubro de 2022
0

Conheça algumas estratégias adotadas por quem deseja acompanhar os jogos da Copa do Mundo 2022 usando o Linux

Como aproveitar o uso de proxy móvel no seu negócio?

Como aproveitar o uso de proxy móvel no seu negócio?

by Linux Descomplicado
31 de agosto de 2022
0

Dados são a nova moeda do mercado, e quanto mais uma empresa conhece as necessidades e desejo dos usuários, mais...

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,...

Load More

Publicaçõesmais recentes

5 Razões pelas quais o Linux Mint é a Distribuição perfeita para usuários vindos do Windows
Distribuições

5 Razões pelas quais o Linux Mint é a Distribuição perfeita para usuários vindos do Windows

by Linux Descomplicado
4 de dezembro de 2023
0

Existem muitas versões do Linux que são boas para iniciantes, mas o Linux Mint é especialmente voltado para pessoas que...

Read more
Linux ou Windows: Guia completo para você fazer a escolha certa
Dicas

Linux ou Windows: Guia completo para você fazer a escolha certa

by Linux Descomplicado
3 de dezembro de 2023
0

Escolher entre Linux e Windows é uma decisão crucial que afeta diretamente a experiência do usuário no mundo da tecnologia....

Read more
Noticias

A Emoção dos Bônus de Sorteio Semanal no BC Games: Como Aumentar Suas Chances de Vitória

by Linux Descomplicado
7 de novembro de 2023
0

O mundo dos jogos online é vasto e repleto de oportunidades para diversão e, às vezes, recompensas financeiras. Entre esses...

Read more
Jogos no Metaverso: Explorando a próxima fronteira dos mundos virtuais
Noticias

Jogos no Metaverso: Explorando a próxima fronteira dos mundos virtuais

by Linux Descomplicado
30 de agosto de 2023
0

Nos últimos anos, o mundo dos jogos vem passando por uma revolução que está redefinindo a forma como entendemos os...

Read more
SaaS, IaaS, PaaS e FaaS: tipos de serviços em nuvem, suas vantagens e aplicações
Administradores de Rede

SaaS, IaaS, PaaS e FaaS: tipos de serviços em nuvem, suas vantagens e aplicações

by Linux Descomplicado
2 de agosto de 2023
0

Os serviços em nuvem trazem muitas vantagens para qualquer pessoa ou empresa que utilize arquivos digitais. Mas você sabe a...

Read more
Criação de Apps: do Desenvolvimento à Publicação
Tecnologia

Criação de Apps: do Desenvolvimento à Publicação

by Linux Descomplicado
31 de maio de 2023
0

Até 2022, a Google Play Store somava mais de 3,3 milhões de aplicativos móveis disponíveis para download. Já na Apple...

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.

Comments 2

  1. Vegan Garo says:
    6 anos ago

    Sou novato e aprendi a usar Tmux…ja era haha

    Responder
  2. Luiz Antonio Carlin says:
    6 anos ago

    MAs e se a situação for diferente: Deixei um comando rodando e me esqueci do Nohup. E para piorar, a minha sessão tem Time-out que faz com que ela caia depois de uns 20 ou 30 m
    O que fazer nesse Caso?
    Ja tentei + z e depois ” bg ” mas em alguns casos percebi que o comando para..

    Responder

Deixe uma resposta Cancelar resposta

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

Next Post
RPCS3 – Emulador open source multiplataforma do PlayStation 3 com a maior lista de jogos compatíveis existente

RPCS3 - Emulador open source multiplataforma do PlayStation 3 com a maior lista de jogos compatíveis existente

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
  • #9720 (sem título)
  • Anuncie aqui
  • Contato
  • Excluir conta
  • Home
  • Login Customizer
  • Newsletter
  • Newsletter personalizada
  • Pesquisa – sobre os leitores
  • Política de privacidade
  • Promoções e novidades
  • Publicações especias
  • Publicações favoritas
  • Publique seu artigo
  • Saiba como você pode contribuir
  • Sobre
  • Termos de uso

© 2024 JNews - Premium WordPress news & magazine theme by Jegtheme.

No Result
View All Result
  • #9720 (sem título)
  • Anuncie aqui
  • Contato
  • Excluir conta
  • Home
  • Login Customizer
  • Newsletter
  • Newsletter personalizada
  • Pesquisa – sobre os leitores
  • Política de privacidade
  • Promoções e novidades
  • Publicações especias
  • Publicações favoritas
  • Publique seu artigo
  • Saiba como você pode contribuir
  • Sobre
  • Termos de uso

© 2024 JNews - Premium WordPress news & magazine theme by Jegtheme.

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

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

Log In