一、概述
lsof(list open files)是一個查看當前系統文件的工具。在linux環境下,任何事物都以文件的形式存在,通過文件不僅僅可以訪問常規數據,還可以訪問網絡連接和硬件。如傳輸控制協議 (TCP) 和用戶數據報協議 (UDP) 套接字等,系統在後臺都爲該應用程序分配了一個文件描述符,該文件描述符提供了大量關於這個應用程序本身的信息。
1.1 lsof打開的文件可以是:
- 普通文件
- 目錄
- 網絡文件系統的文件
- 字符或設備文件
- (函數)共享庫
- 管道,命名管道
- 符號鏈接
- 網絡文件(例如:NFS file、網絡socket,unix域名socket)
- 還有其它類型的文件,等等
1.2 lsof輸出各列信息的意義如下:
-
COMMAND:進程的名稱
-
PID:進程標識符
-
PPID:父進程標識符(需要指定-R參數)
-
USER:進程所有者
-
PGID:進程所屬組
-
FD:文件描述符,應用程序通過文件描述符識別該文件。如cwd、txt等:
二、看已經刪除的文件,空間有沒有釋放,沒有的話kill掉pid
lsof -n |grep deleted
三.刪除文件句柄
lsof | grep delete | awk 'print $2' | xargs kill