システムを再起動しても名前付きパイプが削除されないのはなぜですか?

システムを再起動しても名前付きパイプが削除されないのはなぜですか?

私が理解したところ、名前付きパイプはディスクに書き込まれるのではなく、メモリに保存されます。これが名前付きパイプを作成する方法です。

$ 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

引用する

関連情報