国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

Linux lsof命令:列出進程調用或打開的文件信息

2024-08-27 23:56:41
字體:
來源:轉載
供稿:網友
我們知道,通過 ps 命令可以查詢到系統中所有的進程,那么,是否可以進一步知道這個進程到底在調用哪些文件嗎?當然可以,使用 lsof 命令即可。

lsof 命令,“list opened files”的縮寫,直譯過來,就是列舉系統中已經被打開的文件。通過 lsof 命令,我們就可以根據文件找到對應的進程信息,也可以根據進程信息找到進程打開的文件。

lsof 命令的基本格式如下:

[root@localhost ~]# lsof [選項]

此命令常用的選項及功能,如表 1 所示。

表 1 lsof 命令常用選項及功能
選項功能
-c 字符串只列出以字符串開頭的進程打開的文件。
+d 目錄名列出某個目錄中所有被進程調用的文件。
-u 用戶名只列出某個用戶的進程打開的文件。
-p pid列出某個 PID 進程打開的文件。

【例 1】

[root@localhost ~]# lsof | more
#查詢系統中所有進程調用的文件
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
…省略部分輸出…

這個命令的輸出非常多。它會按照 PID,從 1 號進程開始列出系統中所有的進程正在調用的文件名。

【例 2】

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

lsof 命令也可以反過來查詢某個文件被哪個進程調用。這個例子就查詢到 /sbin/init 文件是被 init 進程調用的。

【例 3】

[root@localhost ~]# lsof +d /usr/lib
#查詢某個目錄下所有的文件是被哪些進程調用的
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”選項可以搜索某個目錄下所有的文件,查看到底哪個文件被哪個進程調用了。

【例 4】

[root@localhost ~]# lsof -c httpd
#查看以httpd開頭的進程調用了哪些文件
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”選項可以查詢以某個字符串開頭的進程調用的所有文件,比如執行“lsof-c httpd”命令就會查詢出以 httpd 開頭的進程調用的所有文件。

【例 5】

[root@localhost ~]# lsof -p 1
#查詢PID是1的進程調用的文件
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

當然,我們也可以按照 PID 查詢進程調用的文件,比如執行“lsof -p 1”命令就可以查看 PID 為 1 的進程調用的所有文件。

【例 6】

[root@localhost ~]# lsof -u root
#按照用戶名查詢某個用戶的進程調用的文件
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.
…省略部分輸出…

我們還可以查看某個用戶的進程調用了哪些文件。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 石泉县| 台山市| 运城市| 北海市| 大余县| 丹棱县| 新安县| 方山县| 疏附县| 庄河市| 阳谷县| 北海市| 临沭县| 那坡县| 察隅县| 华蓥市| 吉林市| 吴桥县| 陇西县| 广安市| 乌兰察布市| 夏邑县| 哈密市| 嵊泗县| 连南| 七台河市| 阿图什市| 晋州市| 象山县| 雅安市| 双牌县| 车险| 西和县| 清丰县| 沙河市| 定安县| 措美县| 武山县| 龙井市| 肇州县| 姜堰市|