Traga o processo deserdado para primeiro plano

2

Aqui está o cenário.

A distribuição é Raspbian. Eu comecei um programa em uma sessão SSH que tem saída contínua na tela. Então eu suspenso e disown para sair da sessão, a fim de fechar o meu laptop e ir dormir.

Quando iniciei uma nova sessão SSH mais tarde, posso ver que o processo ainda está lá, por isso quero trazê-lo de volta ao front end para ver seu status e seu progresso.

Alguém pode me ajudar nisso? Eu pesquisei muito e tentei abordagens como bg / jobs / fg , screen / tmux (não as usei antes do comando issue). Nenhum deles funciona.

Eu tentei a opção reptyr with -T porque o processo de destino tem filhos. Falhou:

pi@raspberrypi:~ $ sudo reptyr 1583 -T
[-] Child is not connected to a pseudo-TTY. Unable to steal TTY.
Unable to attach to pid 1583: Invalid argument
    
por Leo Chiu 23.05.2018 / 05:13

1 resposta

0

Você precisará executar screen primeiro. Isso permitirá que você desconecte toda a sessão e possa ativá-la novamente. Se você não tiver a tela instalada, poderá instalá-la executando:

sudo apt-get install screen

Uma vez instalado, execute primeiro screen . Isto irá abrir um novo shell no pseudo-tty. Depois de iniciar o programa, pressione Ctrl-A D para separar a sessão da tela. Agora você pode fazer logoff com segurança e o programa continuará a ser executado.

Para retomar, volte a entrar no SSH e execute screen -r . Você estará exatamente onde parou e poderá ver a saída atual.

Outra opção é executar a tela, mas execute o programa da seguinte forma:

mypgm > output.log 2>&1 &

Isso executará o programa em segundo plano, redirecionando todas as saídas e erros para output.log .

Você pode visualizar o progresso executando tail -f output.log

Pressione Ctrl-C para sair do comando tail -f .

    
por 23.05.2018 / 05:37

Tags