lsof 누락된 파일

lsof 누락된 파일

lsof가 열린 파일을 나열할 수 없는 이유는 무엇입니까? 예를 들어, 텍스트 편집기를 사용하여 홈 디렉터리에 있는 파일을 엽니다.

$ gedit ~/.python_history

lsof루트로도 작동하지 않습니다

$ sudo lsof | grep python_history

아무것도 나열되어 있지 않습니다. 왜?

파일을 편집하는 것과 저장하는 것에는 차이가 없습니다. Python 인터프리터를 실행해도 아무런 차이가 없습니다.

$ lsof | grep gedit

여러 파일이 나열되지만 편집 중인 파일은 나열되지 않습니다.

답변1

Gedit는 파일을 메모리로 읽은 다음 파일 핸들을 닫습니다. 대개:

open("/path/to/your/file", O_RDONLY|O_LARGEFILE|O_NOATIME) = 18
read(18, "blah blah blah"..., 4096) = 305
close(18)                           = 0

아니면 mmap이나 다른 방법으로요. (정확하게 파일을 읽는 방법은 확실하지 않지만 요점은 파일을 열어두지 않는다는 것입니다.)

그 후에는 변경되었는지 확인하기 위해 계속 폴링합니다. 글을 쓰는 동안 다시 열어보세요.

관련 정보