Linuxで現在ロードされている共有オブジェクトを表示する方法は?


34

関連する質問が2つあります。

  • 共有ライブラリが現在ロードされているかどうかを確認するにはどうすればよいですか?(つまり、システム全体、プロセスに依存しない)
  • プロセスによってロードされたすべての共有ライブラリを表示するにはどうすればよいですか?

回答:


40

両方でできますlsof。ライブラリが開いているかマップされているプロセスを確認するには、次のようにします。

lsof /path/to/lib.so

プロセスが開いているファイルやマップしているファイル(共有ライブラリを含む)を確認するには、次のようにします。

lsof -p <pid>

22

プロセスにロードされているものを確認する別の方法は、/proc/PID/mapsファイルを見ることです。これにより、マップされた共有オブジェクトを含む、アドレス空間にマップされたすべてが表示されます。


組み込みARMプラットフォームで正常に動作しました。BusyBoxの実装にlsofは必要な機能がありませんでした。
アレックスチェ

7
sudo grep libcairo.so /proc/*/maps

/proc/PID/maps Richが言及したすべてを一度に探索するのに便利な方法です。サンプル出力:

/proc/8390/maps:7f0a9afae000-7f0a9b0bc000 r-xp 00000000 fc:00 274690                     /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
/proc/8390/maps:7f0a9b0bc000-7f0a9b2bc000 ---p 0010e000 fc:00 274690                     /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
/proc/8390/maps:7f0a9b2bc000-7f0a9b2bf000 r--p 0010e000 fc:00 274690                     /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
/proc/8390/maps:7f0a9b2bf000-7f0a9b2c0000 rw-p 00111000 fc:00 274690                     /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
/proc/8466/maps:7f0a9afae000-7f0a9b0bc000 r-xp 00000000 fc:00 274690                     /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
/proc/8466/maps:7f0a9b0bc000-7f0a9b2bc000 ---p 0010e000 fc:00 274690                     /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
/proc/8466/maps:7f0a9b2bc000-7f0a9b2bf000 r--p 0010e000 fc:00 274690                     /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6
/proc/8466/maps:7f0a9b2bf000-7f0a9b2c0000 rw-p 00111000 fc:00 274690                     /usr/lib/x86_64-linux-gnu/libcairo.so.2.11400.6

さらにawk、bash-fuは出力をさらに絞り込むことができます。

この方法では、Ubuntu 18.04でハッキングされたこの最小限のセットアップdlopenでテストされた、で開かれたライブラリも表示されますsleep(1000)


4

rootで次のコマンドを実行すると、完全なリストが表示されます。

cat /proc/*/maps | awk '{print $6;}' | grep '\.so' | sort | uniq

これは、lsofを持たないユーザー向けです。


なぜユーザーにそれを試してほしいのですか?理解を深めるために回答を編集してください。
CaldeiraG
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.