lsofとfuser
5949 ワード
サーバでプログラムをデバッグするときに、必要なリソースが占有される場合があります.その場合、どのプログラムがリソースを占有しているかを確認します.lsofとfuser命令が必要です.
lsofオープンファイルの情報を表示する
lsof filename指定ファイルを開くすべてのプロセスlsof-aは、両方のパラメータが満たされている必要がある場合に結果lsof-c string表示COMMAND列に指定文字が含まれているプロセスすべて開いているファイルlsof-u username表示userプロセスが開いているファイルlsof-g gid表示帰属gidのプロセス状況lsof+d/DIR/表示ディレクトリの下でプロセスが開いているファイルlsof+D/DIR/は同じですが、ディレクトリの下のすべてのディレクトリが検索され、比較的長い時間l
たとえば
lsof特定ポートを調べる
fuserの役割はlsofとよく似ており、指定したファイルを使用するプロセス情報もすべてリストされます.
権限の意味:
cこのファイルを現在のディレクトリとして使用します.eこのファイルをプログラムの実行可能オブジェクトとして使用します.rこのファイルをルートディレクトリとして使用します.sこのファイルを共有ライブラリ(または他のマウント可能なオブジェクト)として使用する
fuserのもう一つの非常に有用な機能は-kであり、指定されたプロセスを殺すことができる(SIGKILL信号を送る)
指定したプロセス番号をlsofまたはfuserで検出すると、netstat-anp|grep pidでオープンポートを検出できます.
マシン上でプロセスが走っているのを検出してもプログラムがどこに配置されているのか分からない場合があります.ps-efでpidを検出し、lsof|grep pidで、得られた情報からプログラムの位置を推定することができます.
lsofオープンファイルの情報を表示する
lsof filename指定ファイルを開くすべてのプロセスlsof-aは、両方のパラメータが満たされている必要がある場合に結果lsof-c string表示COMMAND列に指定文字が含まれているプロセスすべて開いているファイルlsof-u username表示userプロセスが開いているファイルlsof-g gid表示帰属gidのプロセス状況lsof+d/DIR/表示ディレクトリの下でプロセスが開いているファイルlsof+D/DIR/は同じですが、ディレクトリの下のすべてのディレクトリが検索され、比較的長い時間l
たとえば
vigar@vigar-laptop:~/ /nice$ lsof /opt/google/chrome/chrome
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
chrome 4913 vigar txt REG 8,6 68449288 1835017 /opt/google/chrome/chrome
chrome 4917 vigar txt REG 8,6 68449288 1835017 /opt/google/chrome/chrome
chrome 4919 vigar txt REG 8,6 68449288 1835017 /opt/google/chrome/chrome
lsof特定ポートを調べる
hpcentos5-/opt/test/bin> lsof -itcp:5000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
perl 8587 admin 3u IPv4 510003 0t0 TCP hpcentos5:commplex-main (LISTEN)
fuserの役割はlsofとよく似ており、指定したファイルを使用するプロセス情報もすべてリストされます.
vigar@vigar-laptop:~/ /nice$ fuser -v /opt/google/chrome/chrome
/opt/google/chrome/chrome:
vigar 4913 ...e. chrome
vigar 4917 ...e. chrome
vigar 4919 ...e. chrome
権限の意味:
cこのファイルを現在のディレクトリとして使用します.eこのファイルをプログラムの実行可能オブジェクトとして使用します.rこのファイルをルートディレクトリとして使用します.sこのファイルを共有ライブラリ(または他のマウント可能なオブジェクト)として使用する
fuserのもう一つの非常に有用な機能は-kであり、指定されたプロセスを殺すことができる(SIGKILL信号を送る)
vigar@vigar-laptop:~/ /nice$ fuser aaa.avi
aaa.avi: 14097
vigar@vigar-laptop:~/ /nice$ fuser -k aaa.avi
aaa.avi: 14097
vigar@vigar-laptop:~/ /nice$ fuser aaa.avi
vigar@vigar-laptop:~/ /nice$
aaa.avi 。 , , root , 。
指定したプロセス番号をlsofまたはfuserで検出すると、netstat-anp|grep pidでオープンポートを検出できます.
test> netstat -anp | grep 7172
(Not all processes could be identified, non-owned process info
tcp 0 0 :::8777 :::* LISTEN 7172/java
tcp 0 0 ::ffff:10.0.7.128:23564 ::ffff:10.0.3.103:1521 ESTABLISHED 7172/java
tcp 0 0 ::ffff:10.0.7.128:23550 ::ffff:10.0.3.103:1521 ESTABLISHED 7172/java
tcp 0 0 ::ffff:10.0.7.128:10629 ::ffff:10.0.3.91:1414 ESTABLISHED 7172/java
tcp 0 0 ::ffff:10.0.7.128:23562 ::ffff:10.0.3.103:1521 ESTABLISHED 7172/java
tcp 0 0 ::ffff:10.0.7.128:23572 ::ffff:10.0.3.103:1521 ESTABLISHED 7172/java
マシン上でプロセスが走っているのを検出してもプログラムがどこに配置されているのか分からない場合があります.ps-efでpidを検出し、lsof|grep pidで、得られた情報からプログラムの位置を推定することができます.