lsofとcat/proc/.../maps [閉じる]

lsofとcat/proc/.../maps [閉じる]

OpenSSLにパッチを適用した後に再起動する必要があるサービスを検索する方法を探している間、次の2つのコマンドの戻り結果の違いを見つけました。

[root@host ~]# cat /proc/1/maps
7f751546c000-7f7515478000 r-xp 00000000 fd:01 5170 /lib64/libnss_files-2.12.so (削除済み)
7f751567a000-7f7515804000 r-xp 00000000 fd:01 360 /lib64/libc-2.12.so (削除済み)
7f7515a09000-7f7515a0e000 読み書き 00000000 00:00 0
7f7515a0e000-7f7515a24000 r-xp 00000000 fd:01 14847 /lib64/libgcc_s-4.4.7-20120601.so.1
7f7515c24000-7f7515c2b000 r-xp 00000000 fd:01 5173 /lib64/librt-2.12.so (削除済み)
...
[root@host~]# lsof -p 1
コマンドPIDユーザーFDタイプデバイスサイズ/終了ノード名
1 ルート cwd DIR 253,1 4096 2/初期化
1ルートrtd DIR 253,1 4096 2/初期化
1 ルート txt 初期化 REG 253,1 150352534 /sbin/init
1 ルート初期化 DEL REG 253,1 5170 /lib64/libnss_files-2.12.so
初期化 1 ルート DEL REG 253,1 360 /lib64/libc-2.12.so
初期化 1 ルートメモリ REG 253,1 90880 14847 /lib64/libgcc_s-4.4.7-20120601.so.1
1 ルート初期化 DEL REG 253,1 5173 /lib64/librt-2.12.so
...

最初のアイテムには削除されたと表示されますが、他のアイテムには削除されなかったのはなぜですか?

また、最後のシステムの再起動がこのファイルの最後の変更より最近行われたことを追加したいと思います。これにより、最後の起動以降にそのファイルが削除されていないようです。

答え1

lsofリスト開いているファイルとマッピング(2)unlinkファイルディスクリプタが閉じたり、-ed(i-nodeを使用)した後でもデータにアクセスできますが、/proc/$PID/mapsそれに関する情報を表示しようとします。

関連情報