É possível conectar um terminal a um processo já em execução usando seu PID de maneira semelhante ao uso do fg
comando para trabalhos?
command-line
process
Tommy
fonte
fonte
Respostas:
Você pode obter os descritores de arquivo padrão desse processo, por exemplo
stdout
:fonte
# ls -la /proc/24510/fd/1 lrwx------ 1 root root 64 Oct 31 08:34 /proc/24510/fd/1 -> socket:[444026]
Existem algumas opções aqui. Uma é redirecionar a saída do comando para um arquivo e, em seguida, usar
tail
para exibir novas linhas que são adicionadas a esse arquivo em tempo real.Outra opção é iniciar o programa dentro dele
screen
, que é um aplicativo de terminal baseado em texto. As sessões de tela podem ser anexadas e desanexadas, mas são destinadas apenas a serem usadas pelo mesmo usuário, portanto, se você quiser compartilhá-las entre os usuários.Caso contrário, se desejar, você pode rastrear o processo e ver o que está fazendo
strace
:-p PID
: Anexe ao processo com o ID do processo PID e inicie o rastreio.-s SIZE
: Especifique o tamanho máximo da sequência a ser impressa (o padrão é 32).-o filename
: Grave a saída de rastreamento no nome do arquivo e não na tela (stderr).fonte
sudo
com strace para anexar a um processo e usar-o ~/output.txt
para que o arquivo seja deixado na sua pasta pessoal.Você pode usar estes comandos abaixo para anexar um processo em execução em outro terminal:
retty
(Página de manual : retty )reptyr
screen
Exemplo:
fonte
sudo apt-get install retty
mas há poucas limitações com o retty. Confira a página de manual mencionada em resposta.