Rastrear um processo em execução


23

Às vezes, esqueço de executar um programa em uma sessão de tela e não consigo parar no meio, e sei que vai demorar muito.

Existe uma maneira de rastrear um processo já em execução sem reiniciá-lo?

Respostas:


12

Encontrei esta resposta no serverfault de earl :

No entanto, para o seu problema real, há outra coisa que você pode tentar: depois de iniciar o seu trabalho a partir do terminal, coloque-o em segundo plano digitando ctrl- ze depois bg.
Depois disso, retire o trabalho dele é shell pai - em bash: disown -h %<jobid>. Depois disso, você pode fechar o terminal com segurança e o trabalho continuará sendo executado.

E este da mesma pergunta de Rob Wells :

$ screen -S my_process
$ retty $(pgrep my_process)
/redraw


Existe alguma maneira de colocar o trabalho em primeiro plano novamente? 'screen' então 'fg 1' não funciona para mim #
Putnik

@Putnik - você executou as outras etapas descritas?
Warren

7

Encontrou uma duplicata no ServerFault .

Outra solução não encontrada nessa postagem está usando retty após iniciar uma sessão de tela.


5
Eu apaguei minha resposta; você pode (e deve) aceitar sua própria resposta após 2 dias. Sinta-se à vontade para citar as partes relevantes aqui, pois as "duplicatas" entre sites realmente não são bobagens devido aos diferentes públicos.
Jeff Atwood

4
Mas você não citou as partes relevantes, conforme sugestão de Jeff. =)
David Thomas

5

Dê uma olhada no reptyr , que faz exatamente isso. A página do github tem todas as informações.

reptyr - Uma ferramenta para "re-escrever"

programas.

reptyr é um utilitário para pegar um programa em execução existente e anexá-lo a um novo terminal. Iniciou um processo de execução demorada pelo ssh, mas precisa sair e não quer interrompê-lo? Basta iniciar uma tela, use reptyr para pegá-la e, em seguida, mate a sessão ssh e vá para casa.

USO

reptyr PID

"reptyr PID" pega o processo com o ID PID e o anexa ao seu terminal atual.

Após a conexão, o processo recebe e grava a saída no novo terminal, incluindo ^ C e ^ Z. (Infelizmente, se você tiver experiência em segundo plano, ainda precisará executar "bg" ou "fg" no terminal antigo. É provável que seja impossível corrigir isso de uma maneira razoável sem corrigir o shell.)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.