これにより、lsof +c 0 | grep /dev/zero
次の2行が表示されます。
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
(アーキテクチャ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