Como ver o conteúdo de um arquivo que eu deletei, mas que um processo ainda está escrevendo para

1

Eu iniciei um trabalho de execução muito longa (que levaria seis dias para ser concluído) e quero ver sua saída, então eu fiz:

$ nohup ./thejob.sh > out.txt

Quando preciso ver o progresso do trabalho, eu tail - f o arquivo.

mas o arquivo out.txt estava crescendo demais e eu deletei o arquivo e o criei novamente.

$ rm out.txt
$ touch out.txt

Depois disso, nenhuma saída está sendo enviada para o arquivo. Eu acho que o trabalho perdeu o vínculo com o arquivo. Eu posso ver que o trabalho está sendo executado usando top , mas não consigo mais ver seu progresso.

Existe alguma maneira de ver isso de novo?

    
por Magno C 31.03.2017 / 16:31

1 resposta

2

O arquivo antigo ainda não foi removido e você pode acessá-lo se souber o PID do processo que está escrevendo nele. Você pode ir para /proc/<pid>/fd e ver 1 , que é stdout

Isso também significa, no entanto, que você não recuperou espaço para tentar remover o arquivo.

Além disso, assim que o processo sair, o arquivo será removido.

    
por 31.03.2017 / 16:34