[自分用メモ][Linux] 特定の共有ライブラリが掴んでいるプロセスを探す方法。

    Related Posts Plugin for WordPress, Blogger...
    Linux 特定の共有ライブラリをロードしているプロセスを調べる - TK's HP /
    http://tclip.blog.fc2.com/blog-entry-90.html

    自分用メモとして残しておきます。
    以前にOpenSSLの脆弱性として有名になったHeartbleedがありましたが、その際にOpenSSLのライブラリが掴んでいるプロセスを特定する際に、使用したコマンドのメモを残しておきます。
    これを使うことで、掴んでいるプロセスを特定し、場合によってはサービスの再起動などの対応が出来ると思います。

    といってもbashのワンライナーで実現できました。

    ps `grep 共有ライブラリの名前 /proc/*/maps | cut -d / -f 3`

    例えば自分の環境において、OpenSSLの共有ライブラリのlibssl.soが掴んでいるプロセスの場合は以下のようになります。
    # ps `grep libssl.so /proc/*/maps | cut -d / -f 3`
    PID TTY STAT TIME COMMAND
    2097 ? Ss 0:00 nginx: master process /usr/sbin/nginx
    2098 ? S 0:00 nginx: worker process
    2099 ? S 0:03 nginx: worker process
    2100 ? S 0:03 nginx: worker process
    2101 ? S 0:03 nginx: worker process
    2180 ? Ss 0:06 /usr/bin/python /usr/bin/supervisord -c /etc/supervisor/supervis
    2236 ? S 0:04 python /var/www/webvirtmgr/console/webvirtmgr-novnc
    2252 ? S 0:08 /usr/bin/python /var/www/webvirtmgr/manage.py run_gunicorn -c /v
    2349 ? S 0:00 /usr/bin/python /var/www/webvirtmgr/manage.py run_gunicorn -c /v
    2350 ? S 0:00 /usr/bin/python /var/www/webvirtmgr/manage.py run_gunicorn -c /v
    2351 ? S 0:00 /usr/bin/python /var/www/webvirtmgr/manage.py run_gunicorn -c /v
    2352 ? S 0:00 /usr/bin/python /var/www/webvirtmgr/manage.py run_gunicorn -c /v
    2353 ? S 0:00 /usr/bin/python /var/www/webvirtmgr/manage.py run_gunicorn -c /v
    2356 ? S 0:00 /usr/bin/python /var/www/webvirtmgr/manage.py run_gunicorn -c /v
    2357 ? S 0:00 /usr/bin/python /var/www/webvirtmgr/manage.py run_gunicorn -c /v
    2361 ? S 0:00 /usr/bin/python /var/www/webvirtmgr/manage.py run_gunicorn -c /v
    2362 ? S 0:00 /usr/bin/python /var/www/webvirtmgr/manage.py run_gunicorn -c /v
    2508 ? Sl 94:53 qemu-system-x86_64 -enable-kvm -name centos6_proxy2 -S -machine
    2540 ? Sl 61:28 qemu-system-x86_64 -enable-kvm -name centos6_zabbix -S -machine
    2570 ? Sl 7:10 qemu-system-x86_64 -enable-kvm -name centos6_dns2 -S -machine pc

    nginxやpython、qemuなどが掴んでいるプロセスとなります。

    例えばnginxの場合、何がロードされているかは以下のようになります。
    # cat /proc/2097/maps
    00400000-004cc000 r-xp 00000000 fc:00 14027922 /usr/sbin/nginx
    006cb000-006cc000 r--p 000cb000 fc:00 14027922 /usr/sbin/nginx
    006cc000-006e1000 rw-p 000cc000 fc:00 14027922 /usr/sbin/nginx
    006e1000-006f0000 rw-p 00000000 00:00 0
    0161f000-01712000 rw-p 00000000 00:00 0 [heap]
    7f648cf8a000-7f648cf95000 r-xp 00000000 fc:00 12976373 /lib/x86_64-linux-gnu/libnss_files-2.19.so
    7f648cf95000-7f648d194000 ---p 0000b000 fc:00 12976373 /lib/x86_64-linux-gnu/libnss_files-2.19.so
    7f648d194000-7f648d195000 r--p 0000a000 fc:00 12976373 /lib/x86_64-linux-gnu/libnss_files-2.19.so
    後略

    この中からOpenSSLに関連するライブラリ(libssl.soやlibcrypto.so)を探して検索してやることで、該当プロセスを見つけることが出来ます。




    Pagination

    Trackback

    Trackback URL

    http://kometchtech.blog.fc2.com/tb.php/1466-48215870

    Comment

    Post Your Comment

    コメント登録フォーム
    公開設定

    Utility

    Profile

    kometch

    Author:kometch
    なんちゃってエンジニアです。
    2009年10月から業務都合により大阪勤務になりました。
    2010年1月、HYBRID W-ZERO3を購入しました。
    2010年11月、HTC Desire HDを購入しました。
    2012年2月、都内の会社に転職しました。
    2012年5月、HTC One Xを購入しました。
    2012年8月、事情により休職しました。
    2012年8月、SONY Xperia SXを購入しました。
    2013年1月、一身上の都合により退職しました。
    2014年3月、都内の会社に就職しました。
    2016年8月、HPC系の会社に転職しました。

    Amazonほしい物リスト
    何か問題などありましたら、こちらまで。 Twitter:@kometchtech follow us in feedly

    カレンダー

    05 | 2017/06 | 07
    - - - - 1 2 3
    4 5 6 7 8 9 10
    11 12 13 14 15 16 17
    18 19 20 21 22 23 24
    25 26 27 28 29 30 -

    全記事(数)表示

    全タイトルを表示

    バロメーター

    カテゴリー

    カテゴリークラウド

    アーカイブ

    検索フォーム

    FC2カウンター

    現在の閲覧者数

    現在の閲覧者数:

    Amazon アフィリエイト

    スポンサードリンク

    Latvia Time

    IPv4/IPv6

    月間ページランキング

    ブログパーツ

    サイトランキング

    スポンサードリンク