삭제했지만 프로세스가 아직 작성 중인 파일의 내용을 어떻게 볼 수 있나요?

삭제했지만 프로세스가 아직 작성 중인 파일의 내용을 어떻게 볼 수 있나요?

나는 매우 오랫동안 실행되는 작업(완료하는 데 6일이 걸릴 것으로 예상)을 시작했고 그 결과를 보고 싶었기 때문에 다음과 같이 했습니다.

$ nohup ./thejob.sh > out.txt

나는 내 작업의 진행 상황을 확인해야 할 때 tail - f파일을 제출합니다 .

그런데 out.txt파일이 너무 커져서 파일을 삭제하고 다시 만들었습니다.

$ rm out.txt
$ touch out.txt

그 후에는 출력이 파일로 전송되지 않습니다. 작업이 파일에 대한 바인딩을 잃어버린 것 같습니다. 를 사용하여 작업이 실행 중인 것을 볼 수 있지만 top더 이상 진행 상황을 볼 수 없습니다.

다시 볼 수 있는 방법이 없을까요?

답변1

이전 파일은 아직 사라지지 않았으며, 해당 파일을 작성한 프로세스의 PID를 알고 있으면 액세스할 수 있습니다. 가서 어떤 것인지 /proc/<pid>/fd확인해볼 수 있어요1stdout

그러나 이는 파일을 삭제하려고 시도하여 공간을 회수하지 않는다는 의미이기도 합니다.

또한 프로세스가 종료되면 파일이 삭제됩니다.

관련 정보