시스템을 다시 시작한 후에도 명명된 파이프가 삭제되지 않는 이유는 무엇입니까?

시스템을 다시 시작한 후에도 명명된 파이프가 삭제되지 않는 이유는 무엇입니까?

내가 이해한 바로는 명명된 파이프는 디스크에 기록되지 않고 메모리에 저장됩니다. 이것이 명명된 파이프를 만드는 방법입니다.

$ mkfifo pipe21
$ grep "simple" SimpleDoc.txt > pipe21 &
[1] 2775
$ cat pipe21
Very simple doc that contains plaintext. 
[1]+  Done                    grep --color=auto "simple" SimpleDoc.txt > pipe21

그 후 시스템을 다시 시작했습니다. 그러나 재부팅한 후에도 현재 디렉터리에 여전히 파이프라인21이 표시됩니다. 왜 그런 겁니까?

답변1

명명된 파이프는 파일 시스템의 일부입니다. 파일 이름이 있는 모든 항목은 파일 시스템의 일부입니다. 이것이 영구 저장소(예: 디스크)의 파일 시스템인 경우 시스템 재부팅 후에도 유지됩니다.

명명된 파이프의 파일 시스템 항목에는 이름, 일반적인 메타데이터(시간, 권한 등) 및 "이것은 명명된 파이프입니다"라는 플래그만 있습니다. 파이프를 통과하는 데이터는 파일 시스템에 입력되지 않습니다. 그러나 명명된 파이프 자체는 파일 시스템에 있습니다.

답변2

아니요, 디스크에 기록됩니다. 이 명령은 mkfifo pipe21파일 시스템에 해당 장치를 생성합니다. 일반적으로 이러한 장치는 이 디렉터리에 보관되지만 /dev명명된 파이프(FIFOS라고도 함)를 반드시 이 디렉터리에 저장할 필요는 없습니다.

Wikipedia 기사에서 발췌

명명된 파이프는 다른 파일과 마찬가지로 삭제할 수 있습니다.
$ rm my_pipe

선입선출 방식을 만듭니다.

$ pwd
/home/saml

$ mkfifo pipe21

FIFO 장치를 확인하십시오.

$ ls -l | grep pipe
prw-rw-r--   1 saml saml        0 Jul 24 12:22 pipe21

$ file pipe21 
pipe21: fifo (named pipe)

장치를 제거:

$ rm pipe21 

$ ls -l | grep pipe

인용하다

관련 정보