É possível fazer um processo em tela executar em background, modificando sua sessão?

1. É possível fazer um processo em tela executar em background, modificando sua sessão?

Mestre Kame
mlgrassi

(usa Debian)

Enviado em 08/09/2016 - 13:48h

Prezados,

Tendo-se a seguinte situação:

Um processo executando via terminal que precisa ser colocado em background. A princípio é simples:
1) Pressionar CTRL + Z
2) executar o comando bg 1 (geralmente o ID do job é 1)

Até aí tudo bem, mas na prática e se ocorrer de o CTRL + Z não funcionar. No caso já aconteceu comigo uma situação onde o processo que estava sendo executado realizava operações em banco de dados (usando o comando sqlplus do Oracle, por exemplo). Ou um script em shell que realiza uma tarefa que por motivos que desconheço não puder ser interrompido pelo CTRL + Z, como proceder?

Efetuei o seguinte teste onde abri 2 sessões para um acesso ao mesmo servidor:

#### Sessão 1 ####
servidor@:/home/user $ ./script.sh
############################


#### Sessão 2 ####
servidor@:/home/user $ ps -aux | grep script.sh
Sendo o PID do processo 12345

servidor@:/home/user $ kill -20 12345
Processo foi colocado em stop
############################

Só que no caso acima se eu fechar a Sessão 1, o processo será encerrado de modo que se na sessão 2 eu executar o comando
kill -18 12345 eu não conseguirei continuar o processo na sessão 2.

A minha pergunta é: Tendo em vista os exemplos acima, como posso fazer para transferir o controle de um processo da primeira sessão para a segunda? Considerando-se que o processo está executando em tela e o objetivo é deixá-lo em background em uma segunda sessão e não na primeira.

Pois Sessão 2 desconhece o job executado por Sessão 1, logo o comando bg é inútil neste caso.

Alguém saberia me ajudar?


  


2. Re: É possível fazer um processo em tela executar em background, modificando sua sessão?

Fabiano
fpires

(usa Debian)

Enviado em 08/09/2016 - 17:45h

Experimente utilizar o SCREEN, que permite utilizar diversas sessões na mesma conexão SSH, recuperar sessões em caso de queda na conexão e manter programas e sessões em execução, mesmo após se desconectar da máquina.
http://pragasdigitais.blogspot.com.br/2009/03/screen-o-gerenciador-de-sessoes-em-modo.html


3. Re: É possível fazer um processo em tela executar em background, modificando sua sessão?

Mestre Kame
mlgrassi

(usa Debian)

Enviado em 08/09/2016 - 17:51h

Amigo a ideia é excelente eu mesmo desconhecia o screen. No entanto no meu caso não tenho como instalar softwares pois o servidor o qual preciso isso é de administração privada e somente tenho acesso user.
Teria que ser realmente uma solução que utiliza-se dos recursos já compilados no próprio kernel. Além do mais meu problema em si não é perder a sessão e sim transferir um processo executando em tela para background só que ao invés de usar a mesma sessão, passar para a outra. Mas valeu mesmo pela dica.


4. Re: É possível fazer um processo em tela executar em background, modificando sua sessão?

Perfil removido
removido

(usa Nenhuma)

Enviado em 29/09/2016 - 14:34h

Não tem screen?
Deveria ter.

Tem mais um outro programa que "pendura" processos, mas não me lembro do nome.
Alternativa.

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts