이렇게 하면 lsof +c 0 | grep /dev/zero
다음 두 줄이 표시됩니다.
sshd 19064 root DEL REG 0,4 497862 /dev/zero
sshd 19064 root DEL REG 0,4 498725 /dev/zero
이것델키워드는 제가 관심을 갖는 것입니다. 매뉴얼 페이지에서 의미하는 바는 다음과 같습니다.
델삭제된 Linux 매핑 파일의 경우
하지만 마지막으로 확인했을 때 재부팅 /dev/zero
해도 여전히 그대로 남아 있었습니다. 왜 그럴까요?SSHD이 캐릭터 장치를 제거하려고 하는데 다음과 같은 이유로 성공하는 이유는 무엇입니까?
- 파일이 아닌 캐릭터 장치입니다.
- 루트가 소유하고 있습니다.
운영 체제 정보: Linux localhost 3.4.103 #1 SMP PREEMPT Thu Dec 18 13:07:12 CST 2014 armv7l GNU/Linux
(아키텍처 리눅스)
답변1
DEL
나타내지 않는다그 과정삭제되었지만 /dev/zero
프로세스가 사용 중이고 /dev/zero
사용 중인 인스턴스가 /dev/zero
삭제되었습니다. 예를 들어 and를 some-command
사용하는 명령이 있다고 가정 /some/file
해 보겠습니다.
$ some-command &
$ rm /some/file
$ touch /some/file
그러면 lsof
다음 /some/file
과 같습니다:
some-command ... ... DEL ... ... ... /some/file
삭제된 파일의 내용은 프로세스가 해제되거나 종료될 때까지 디스크에 남아 있지만 직접 액세스할 수는 없습니다.
/some/file
내가 만든 버전이 사용 중인 버전 touch
이 아닙니다 .some-command