第 81 章 lsof - list open files 檔案監控
lsof - list open files
Command、PID 和 User 列分別表示進程的名稱 進程標識符 (PID) 和所有者名稱.
FD: 檔案描述符,應用程序通過檔案描述符識別該檔案.如cwd txt等
(1) cwd : current working directory
應用程序的當前工作目錄,這是該應用程序啟動的目錄,除非它本身對這個目錄進行更改
(2) txt : program text (code and data)
該類型的檔案是程式碼,如應用程序二進制檔案本身或共享庫,如上列表中顯示的 /sbin/init 程序
(3) lnn : library references (AIX)
庫引用
(4) er : FD information error (see NAME column)
FD錯誤信息
(5) jld : jail directory (FreeBSD)
安全目錄
(6) ltx : shared library text (code and data)
共享庫文本
(7) mxx : hex memory-mapped type number xx
十六進制內存映射型號碼xx
(8) m86 : DOS Merge mapped file
DOS的合併映射檔案
(9) mem : memory-mapped file
檔案內存映射
(10) mmap : memory-mapped device
設備內存映射
(11) pd : parent directory
父目錄
(12) rtd : root directory
root目錄
(13) tr : kernel trace file (OpenBSD)
內核跟蹤檔案
(14) v86 : VP/ix mapped file
VP/ix映射檔案
(15) 0 : 表示標準輸出
(16) 1 : 表示標準輸入
(17) 2 : 表示標准錯誤
初始打開每個應用程序時,都具有三個檔案描述符,從 0 到 2,分別表示 標準輸入 標準輸出 和 錯誤流. 正因為如此,大多數應用程序所打開的檔案的 FD 都是從3開始.
一般在標準輸出 標准錯誤 標準輸入 後還跟着檔案狀態模式: r w u等
(1) u : 表示該檔案被打開並處于讀取/寫入模式
(2) r : 表示該檔案被打開並處于只讀模式
(3) w : 表示該檔案被打開並處于
(4) 空格 : 表示該檔案的狀態模式為unknow,且沒有鎖定
(5) - : 表示該檔案的狀態模式為unknow,且被鎖定
同時在檔案狀態模式後面,還跟着相關的鎖
(1) N : for a Solaris NFS lock of unknown type;
(2) r : for read lock on part of the file;
(3) R : for a read lock on the entire file;
(4) w : for a write lock on part of the file;
檔案的部分寫鎖
(5) W : for a write lock on the entire file
整個檔案的寫鎖
(6) u : for a read and write lock of any length;
(7) U : for a lock of unknown type;
(8) x : for an SCO OpenServer Xenix lock on part of the file;
(9) X : for an SCO OpenServer Xenix lock on the entire file;
(10) space : if there is no lock.
TYPE : 檔案類型,與 FD 列相比,Type 列則比較直觀.
根據具體操作系統的不同,您會發現將檔案和目錄稱為REG 和 DIR(在 Solaris 中,稱為 VREG 和 VDIR).
其他可能的取值為 CHR 和 BLK,分別表示字元和塊設備;
或者 UNIX、FIFO 和 IPv4,分別表示 UNIX 域套接字 先進先出 (FIFO) 隊列和網際協議 (IP) 套接字.
(1) DIR : 表示目錄
(2) CHR : 表示字元類型
(3) BLK : 塊設備類型
(4) UNIX : UNIX 域套接字
(5) FIFO :先進先出 (FIFO) 隊列
(6) IPv4 :網際協議 (IP) 套接字
Device SIZE/OFF Node 和 NA
列涉及到檔案本身的信息,分別表示
指定磁碟的名稱
檔案的大小
索引節點(檔案在磁碟上的標識)
該檔案的確切名稱
$ sudo lsof -c lighttpd
neo@netkiller:~/workspace/Document$ lsof -p $$
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
zsh 4536 neo cwd DIR 8,6 4096 30 /home/neo/workspace/Document
zsh 4536 neo rtd DIR 8,1 4096 2 /
zsh 4536 neo txt REG 8,1 675792 6907 /bin/zsh4
zsh 4536 neo mem REG 8,1 68824 56594 /usr/lib/zsh/4.3.10/zsh/computil.so
zsh 4536 neo mem REG 8,1 41000 30570 /usr/lib/zsh/4.3.10/zsh/parameter.so
zsh 4536 neo mem REG 8,1 31512 53350 /usr/lib/zsh/4.3.10/zsh/zutil.so
zsh 4536 neo mem REG 8,1 153096 53354 /usr/lib/zsh/4.3.10/zsh/complete.so
zsh 4536 neo mem REG 8,1 290888 56596 /usr/lib/zsh/4.3.10/zsh/zle.so
zsh 4536 neo mem REG 8,1 10544 30579 /usr/lib/zsh/4.3.10/zsh/terminfo.so
zsh 4536 neo mem REG 8,1 51712 19594 /lib/libnss_files-2.11.1.so
zsh 4536 neo mem REG 8,1 43552 23798 /lib/libnss_nis-2.11.1.so
zsh 4536 neo mem REG 8,1 97256 15503 /lib/libnsl-2.11.1.so
zsh 4536 neo mem REG 8,1 35712 16431 /lib/libnss_compat-2.11.1.so
zsh 4536 neo mem REG 8,1 18704 1902 /lib/libattr.so.1.1.0
zsh 4536 neo mem REG 8,1 1568136 7583 /lib/libc-2.11.1.so
zsh 4536 neo mem REG 8,1 534832 11379 /lib/libm-2.11.1.so
zsh 4536 neo mem REG 8,1 323640 7295 /lib/libncursesw.so.5.7
zsh 4536 neo mem REG 8,1 14696 11378 /lib/libdl-2.11.1.so
zsh 4536 neo mem REG 8,1 18888 5099 /lib/libcap.so.2.17
zsh 4536 neo mem REG 8,1 136936 7487 /lib/ld-2.11.1.so
zsh 4536 neo mem REG 8,1 256324 145156 /usr/lib/locale/en_US.utf8/LC_CTYPE
zsh 4536 neo mem REG 8,1 54 131099 /usr/lib/locale/en_US.utf8/LC_NUMERIC
zsh 4536 neo mem REG 8,1 2454 145158 /usr/lib/locale/en_US.utf8/LC_TIME
zsh 4536 neo mem REG 8,1 1170770 145157 /usr/lib/locale/en_US.utf8/LC_COLLATE
zsh 4536 neo mem REG 8,1 286 145159 /usr/lib/locale/en_US.utf8/LC_MONETARY
zsh 4536 neo mem REG 8,1 57 145160 /usr/lib/locale/en_US.utf8/LC_MESSAGES/SYS_LC_MESSAGES
zsh 4536 neo mem REG 8,1 26048 73711 /usr/lib/gconv/gconv-modules.cache
zsh 4536 neo mem REG 8,1 34 131105 /usr/lib/locale/en_US.utf8/LC_PAPER
zsh 4536 neo mem REG 8,1 77 131106 /usr/lib/locale/en_US.utf8/LC_NAME
zsh 4536 neo mem REG 8,1 155 145161 /usr/lib/locale/en_US.utf8/LC_ADDRESS
zsh 4536 neo mem REG 8,1 59 145162 /usr/lib/locale/en_US.utf8/LC_TELEPHONE
zsh 4536 neo mem REG 8,1 23 131109 /usr/lib/locale/en_US.utf8/LC_MEASUREMENT
zsh 4536 neo mem REG 8,1 373 145163 /usr/lib/locale/en_US.utf8/LC_IDENTIFICATION
zsh 4536 neo 0u CHR 136,0 0t0 3 /dev/pts/0
zsh 4536 neo 1u CHR 136,0 0t0 3 /dev/pts/0
zsh 4536 neo 2u CHR 136,0 0t0 3 /dev/pts/0
zsh 4536 neo 10u CHR 136,0 0t0 3 /dev/pts/0