SSH - Deixar tarefa rodando e depois retomar [RESOLVIDO]

1. SSH - Deixar tarefa rodando e depois retomar [RESOLVIDO]

Leandro Medeiros
doctorx777

(usa Ubuntu)

Enviado em 20/05/2012 - 11:05h

Então, tenho algumas tarefas que rodam em um servidor remoto ssh,
o problema é que eu preciso ficar com meu computador ligado pra tarefa
funcionar, se eu sair do ssh a tarefa encerra.
gostaria de saber se tem como eu logar na maquina via ssh, rodar meu programa,
sair do ssh mas de modo que o programa na maquina remota não pare de ser executado?
e depois quando eu logar na maquina de novo, poder capturar o terminal que o programa
tá rodando, pois ele mostra varias mensagens e tal. seria como se eu não tivesse deslogado.
tem como fazer isso?


  


2. Re: SSH - Deixar tarefa rodando e depois retomar [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 20/05/2012 - 12:50h

Boa tarde,

esse trabalho de fazer o programa rodar mesmo você não estando logado, ou seja fazer login e rodar o programa e fazer logout e mesmo fazendo logout o programa continuar em execução pode ser feito com o comando nohup.


nohup comando


Para rodar o programa em segundo plano:


nohup comando &


a saída do programa fica gravada em um arquivo chamado: nohup.out


3. Re: SSH - Deixar tarefa rodando e depois retomar [RESOLVIDO]

Leandro Medeiros
doctorx777

(usa Ubuntu)

Enviado em 20/05/2012 - 14:09h

Fala eabreu,

então cara, pelo que entendi ele vai salvar toda saída do programa no arquivo.
so que isso seria complicado, pq ele mostra muita informação na tela a todo segundo
se for salvar isso tudo o arquivo vai ficar imenso, e tb o programa já salva em outro arquivo
o que é necessário. o que eu queria era retomar a tela pra poder ficar olhando mesmo, pra v se tá
rodando rapido ou devagar... se ta rodando na sequencia certa... etc... nao preciso salvar toda saída, seria
impraticável.

imagine que vc pingue um host, vai ficar na tela as linhas passando certo?
nisso vc pode acompanhar a latencia, o tempo de resposta.. mas não necessariamente
vc tenha que salvar tudo isso num arquivo.. não precisa. então seria como vc rodar o ping,
sair, depois voltar e poder fazer um comando pra poder ver na tela novamente como tá indo....

acho que consegui explicar o que preciso...


4. Achei a resposta

Leandro Medeiros
doctorx777

(usa Ubuntu)

Enviado em 20/05/2012 - 14:40h

Achei a resposta exatamente para o que preciso.
compartilhando a solução:

Quando você se conecta a uma náquina Linux pelo putty (SSH), todas as operações são dependentes da sua sessão.

Se você der um wget e fechar o putty, por exemplo, o download é interrompido. E isso vale para tar, zip, make, etc.

Uma solução para isso é o terminal virtual. O que utilizo é o screen.
Para instalá-lo no Debian, é o de sempre:

Código:

$ apt-get install screen

A utilização também é simples.
Depois de instalado, para iniciar uma sessão do terminal basta chamar o screen:

Código:

$ screen

Vai abrir um shell normal, onde você pode executar o(s) comando(s) que precisam ficar rodando mesmo depois de desconectado o SSH.

Para sair do screen sem fechar (detach), basta teclar:
Ctrl+a+d

Para retomar a sessão do screen, basta digitar:

Código:

$ screen -r
[/code]
Se você tiver mais de uma sessão de terminal, basta dar um

Código:

$ screen -ls

Vai aparecer uma lista como essa:

Código:

There are several suitable screens on:
26826.pts-0.AgenceDebianServer (Detached)
26850.wget (Detached)

Para restaurar uma sessão específica, é só pasar o nome da mesma. Por exemplo:

Código:

$ screen -r 26826.pts-0.AgenceDebianServer

O nome da sessão é composta de [PID].[terminal].[servidor]

Na segunda sessão listada no exemplo acima, o nome é o [PID].wget.
Esse nome foi definido na hora de criar a sessão do screen, usando

Código:

$ screen -S wget

Isso pode ajudar bastante se você tem várias sessões abertas.


É isso.
Abraço.



5. Thank You!

João Pedro
SonnyBoySilvson

(usa Ubuntu)

Enviado em 17/06/2015 - 11:54h


Valeu doctorx!

Definitamente tive que me cadastrar somente para agradecer. Estamos em 2015 e sua resposta direto do túnel do tempo salvou de maneira prática e eficiente muito trabalho.

Lhe agradeço em nome da comunidade pela gentileza.

Espero aumentar em conhecimento para também poder ajudar.


6. valeu manim!

Sergio
madprolondon

(usa CentOS)

Enviado em 21/12/2015 - 16:28h

quebrou meu galho!


7. ótimo!!!

Alessandro Schneider dos Santos
Krusth

(usa Fedora)

Enviado em 05/01/2016 - 16:26h

Parabéns!!!


8. Ótima solução

Lucas Eduardo Bretana
lucasbretana

(usa Debian)

Enviado em 06/01/2016 - 12:32h

Funcionou perfeitamente.
Vlw.


9. Agradecimento

Raul
Rauntty

(usa Outra)

Enviado em 24/03/2016 - 15:40h

Sem essa ferramenta, qualquer trabalho que demande muitas horas de computador é uma verdadeira condenação. Eu que rodo programas que duram dias, semanas,.... ficar com o terminal aberto, além de um puto consumo de energia, é uma ocupação inviável para minha máquina pessoal.

Valeu pela ajuda. Muito esclarecedora e útil.

Parabéns!!


10. Parabéns

Carlos kwiek
Kwiek

(usa Outra)

Enviado em 04/06/2017 - 17:42h

Olá doctorx777, parabéns e obrigado, estou rodando no Raspberry alguns programas desta forma, e não sabia como resolver, muito boa a pratica a solução, porque permite voltar ao programa a qualquer momento e retomar o processo.

Grand abraço!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts