Linux lsof使用__Linux

來源:互聯網
上載者:User

lsof(list open files)是一個列出當前系統開啟檔案的工具。在linux環境下,任何事物都以檔案的形式存在,通過檔案不僅僅可以訪問常規資料,還可以訪問網路連接和硬體。

在終端下輸入lsof即可顯示系統開啟的檔案,因為 lsof 需要訪問核心記憶體和各種檔案,所以必須以 root 使用者的身份運行它才能夠充分地發揮其功能。 

[root@master ~]# lsof -p 22529
COMMAND   PID   USER   FD   TYPE             DEVICE     SIZE      NODE NAME
java    22529 hadoop  cwd    DIR                8,3     4096  68255745 /home/hadoop/hadoop-1.0.3
java    22529 hadoop  rtd    DIR                8,3     4096         2 /
java    22529 hadoop  txt    REG                8,3   270055  62390291 /home/hadoop/jrockit-jdk1.6.0_29/bin/java
java    22529 hadoop  mem    REG                8,3   144776  19431601 /lib64/ld-2.5.so
java    22529 hadoop  mem    REG                8,3  1726320  19431605 /lib64/libc-2.5.so
java    22529 hadoop  mem    REG                8,3   614992  19431684 /lib64/libm-2.5.so
java    22529 hadoop  mem    REG                8,3    23360  19431672 /lib64/libdl-2.5.so
java    22529 hadoop  mem    REG                8,3   149968  19431652 /lib64/libpthread-2.5.so
java    22529 hadoop  mem    REG                8,3    53448  19431661 /lib64/librt-2.5.so
java    22529 hadoop  mem    REG                8,3   114352  19431671 /lib64/libnsl-2.5.so
java    22529 hadoop  mem    REG                8,3    92816  19431752 /lib64/libresolv-2.5.so
java    22529 hadoop  mem    REG                8,3 23684216  62456020 /home/hadoop/jrockit-jdk1.6.0_29/jre/lib/amd64/jrockit/libjvm.so
java    22529 hadoop  mem    REG                8,3   492348  62456055 /home/hadoop/jrockit-jdk1.6.0_29/jre/lib/amd64/libosal.so
java    22529 hadoop  mem    REG                8,3   233295  62456060 /home/hadoop/jrockit-jdk1.6.0_29/jre/lib/amd64/libutil.so
java    22529 hadoop  mem    REG                8,3    32768 112656417 /tmp/hsperfdata_hadoop/22529
java    22529 hadoop  mem    REG                8,3    53880  19431603 /lib64/libnss_files-2.5.so
java    22529 hadoop  mem    REG                8,3   261428  62456041 /home/hadoop/jrockit-jdk1.6.0_29/jre/lib/amd64/libjfr.so
java    22529 hadoop  mem    REG                8,3    66580  62456061 /home/hadoop/jrockit-jdk1.6.0_29/jre/lib/amd64/libverify.so
java    22529 hadoop  mem    REG                8,3   234440  62456036 /home/hadoop/jrockit-jdk1.6.0_29/jre/lib/amd64/libjava.so
java    22529 hadoop  mem    REG                8,3    55818  62488580 /home/hadoop/jrockit-jdk1.6.0_29/jre/lib/amd64/native_threads/libhpi.so
java    22529 hadoop  mem    REG                8,3 56471376  16979795 /usr/lib/locale/locale-archive
java    22529 hadoop  mem    REG                8,3    92253  62456062 /home/hadoop/jrockit-jdk1.6.0_29/jre/lib/amd64/libzip.so
java    22529 hadoop  mem    REG                8,3    39481  62456047 /home/hadoop/jrockit-jdk1.6.0_29/jre/lib/amd64/libmanagement.so

 

COMMAND:進程的名稱
PID:進程標識符
USER:進程所有者
FD:檔案描述符,應用程式通過檔案描述符識別該檔案。如cwd、txt等
TYPE:檔案類型,如DIR、REG等
DEVICE:指定磁碟的名稱
SIZE:檔案的大小
NODE:索引節點(檔案在磁碟上的標識)
NAME:開啟檔案的確切名稱

 

其中FD 列中的檔案描述符

cwd 值表示應用程式的當前工作目錄,這是該應用程式啟動的目錄,除非它本身對這個目錄變更。

txt 類型的檔案是程式碼,如應用程式二進位檔案本身或共用庫,如上列表中顯示的 /sbin/init 程式。其次數值表示應用程式的檔案描述符,這是開啟該檔案時返回的一個整數。如上的最後一行檔案/dev/initctl,其檔案描述符為10。u 表示該檔案被開啟並處於讀取/寫入模式,而不是唯讀 ® 或唯寫 (w) 模式。同時還有大寫 的W 表示該應用程式具有對整個檔案的寫鎖。該檔案描述符用於確保每次只能開啟一個應用程式執行個體。初始開啟每個應用程式時,都具有三個檔案描述符,從 0 到 2,分別表示標準輸入、輸出和錯誤流。所以大多數應用程式所開啟的檔案的 FD 都是從 3 開始。與 FD 列相比,Type 列則比較直觀。檔案和目錄分別稱為 REG 和 DIR。而CHR 和 BLK,分別表示字元和塊裝置;或者 UNIX、FIFO 和 IPv4,分別表示 UNIX 域通訊端、先進先出 (FIFO) 隊列和網際協議 (IP) 通訊端。 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.