日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Linuxlsof命令:列出進(jìn)程調(diào)用或打開的文件信息
我們知道,通過 ps 命令可以查詢到系統(tǒng)中所有的進(jìn)程,那么,是否可以進(jìn)一步知道這個(gè)進(jìn)程到底在調(diào)用哪些文件嗎?當(dāng)然可以,使用 lsof 命令即可。

創(chuàng)新互聯(lián)建站專注于杭州企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),購物商城網(wǎng)站建設(shè)。杭州網(wǎng)站建設(shè)公司,為杭州等地區(qū)提供建站服務(wù)。全流程按需求定制網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)

lsof 命令,“l(fā)ist opened files”的縮寫,直譯過來,就是列舉系統(tǒng)中已經(jīng)被打開的文件。通過 lsof 命令,我們就可以根據(jù)文件找到對(duì)應(yīng)的進(jìn)程信息,也可以根據(jù)進(jìn)程信息找到進(jìn)程打開的文件。

lsof 命令的基本格式如下:

[root@localhost ~]# lsof [選項(xiàng)]

此命令常用的選項(xiàng)及功能,如表 1 所示。

表 1 lsof 命令常用選項(xiàng)及功能
選項(xiàng) 功能
-c 字符串 只列出以字符串開頭的進(jìn)程打開的文件。
+d 目錄名 列出某個(gè)目錄中所有被進(jìn)程調(diào)用的文件。
-u 用戶名 只列出某個(gè)用戶的進(jìn)程打開的文件。
-p pid 列出某個(gè) PID 進(jìn)程打開的文件。

【例 1】

[root@localhost ~]# lsof | more
#查詢系統(tǒng)中所有進(jìn)程調(diào)用的文件
COMMAND PID  USER  FD    TYPE  DEVICE  SIZE/OFF  NODE  NAME
init               1      root    cwd  DIR    8,3       4096        2           /
init               1      root    rtd    DIR    8,3       4096        2           /
init               1      root    txt     REG   8,3       145180    130874 /sbin/init
init               1      root    mem REG   8,3       142472    665291 /lib/ld-2.12.so
init               1      root    mem REG   8,3       58704      655087 /lib/libnss_files-2.12.so
…省略部分輸出…

這個(gè)命令的輸出非常多。它會(huì)按照 PID,從 1 號(hào)進(jìn)程開始列出系統(tǒng)中所有的進(jìn)程正在調(diào)用的文件名。

【例 2】

[root@localhost ~]# lsof /sbin/init
#查詢某個(gè)文件被哪個(gè)進(jìn)程調(diào)用
COMMAND PID USER  FD  TYPE  DEVICE  SIZE/OFF  NODE    NAME
init               1     root    txt  REG   8,3      145180     130874   /sbin/init

lsof 命令也可以反過來查詢某個(gè)文件被哪個(gè)進(jìn)程調(diào)用。這個(gè)例子就查詢到 /sbin/init 文件是被 init 進(jìn)程調(diào)用的。

【例 3】

[root@localhost ~]# lsof +d /usr/lib
#查詢某個(gè)目錄下所有的文件是被哪些進(jìn)程調(diào)用的
COMMAND  PID    USER   FD     TYPE DEVICE  SIZE/OFF   NODE    NAME
rpc.idmap     1196  root     mem REG  8,3       26400       279930   /usr/lib/libnfsidmap.so.0.3.0
rpc.idmap     1196  root     mem REG  8,3       108948     276696   /usr/lib/libevent-1.4.so.2.1.3
avahi-dae     1240  avahi    mem REG  8,3       49124       271310   /usr/lib/libavahi-common.so.3.5.1
avahi-dae     1240  avahi    mem REG  8,3       23904       283188   /usr/lib/libdaemon.so.0.5.0
avahi-dae     1240  avahi    mem REG  8,3       227212     268396   /usr/lib/libavahi-core.so.6.0.1
avahi-dae     1241  avahi    mem REG  8,3       49124       271310   /usr/lib/libavahi-common.so.3.5.1
avahi-dae     1241  avahi    mem REG  8,3       23904       283188   /usr/lib/libdaemon.so.0.5.0
avahi-dae     1241  avahi    mem REG  8,3       227212     268396   /usr/lib/libavahi-core.so.6.0.1
cupsd           1251  root      mem REG  8,3       69564       270210   /usr/lib/libtasn1.so.3.1.6

使用“+d”選項(xiàng)可以搜索某個(gè)目錄下所有的文件,查看到底哪個(gè)文件被哪個(gè)進(jìn)程調(diào)用了。

【例 4】

[root@localhost ~]# lsof -c httpd
#查看以httpd開頭的進(jìn)程調(diào)用了哪些文件
COMMAND PID   USER   FD    TYPE   DEVICE  SIZE/OFF  NODE   NAME
httpd           4689 root     cwd  DIR     8,3       4096        2           /
httpd           4689 root     rtd    DIR     8,3       4096        2           /
httpd           4689 root     txt     REG    8,3       1797559  2855     /usr/local/apache2/bin/httpd
httpd           4689 root     mem REG    8,3       302300    665303 /lib/libfreebl3.so
httpd           4689 root     mem REG    8,3       58704      655087 /lib/libnss_files-2.12.s
httpd           4689 root     mem REG    8,3       142472    665291 /lib/ld-2.12.so
httpd           4689 root     mem REG    8,3       1889704  665292 /lib/libc-2.12.so
…省略部分輸出…

使用“-c”選項(xiàng)可以查詢以某個(gè)字符串開頭的進(jìn)程調(diào)用的所有文件,比如執(zhí)行“l(fā)sof-c httpd”命令就會(huì)查詢出以 httpd 開頭的進(jìn)程調(diào)用的所有文件。

【例 5】

[root@localhost ~]# lsof -p 1
#查詢PID是1的進(jìn)程調(diào)用的文件
COMMAND PID USER FD   TYPE  DEVICE  SIZE/OFF NODE  NAME
init               1     root  cwd  DIR    8,3      4096        2           /
init               1     root rtd     DIR    8,3      4096        2           /
init               1     root  txt     REG   8,3      145180    130874 /sbin/init
init               1     root  mem REG   8,3      142472    665291 /lib/ld-2.12.so
init               1     root  mem REG   8,3      58704      655087 /lib/libnss_files-2.12.so

當(dāng)然,我們也可以按照 PID 查詢進(jìn)程調(diào)用的文件,比如執(zhí)行“l(fā)sof -p 1”命令就可以查看 PID 為 1 的進(jìn)程調(diào)用的所有文件。

【例 6】

[root@localhost ~]# lsof -u root
#按照用戶名查詢某個(gè)用戶的進(jìn)程調(diào)用的文件
COMMAND PID USER  FD      TYPE   DEVICE   SIZE/OFF   NODE  NAME
init               1     root    cwd    DIR     8,3       4096          2           /
init               1     root    rtd      DIR     8,3       4096          2           /
init               1     root    txt      REG     8,3       145180     130874  /sbin/init
init               1     root    mem  REG     8,3       142472     665291  /lib/ld-2.12.so
init               1     root    mem  REG     8,3       58704       655087  /lib/libnss_files-2.12.s
init               1     root    mem  REG     8,3       38768       655310  /lib/libnih-dbus.so.1.0.
…省略部分輸出…

我們還可以查看某個(gè)用戶的進(jìn)程調(diào)用了哪些文件。


文章標(biāo)題:Linuxlsof命令:列出進(jìn)程調(diào)用或打開的文件信息
文章轉(zhuǎn)載:http://www.dlmjj.cn/article/djdgdgd.html