Lsof

lsof là một lệnh có trong nhiều hệ điều hành tựa Unix ("list open files"), có chức năng xuất ra danh sách tất cả các tập tin đamg được mở và những tiến trình đang mở chúng. Tiện ích này được phát triển và hỗ trợ bởi Vic Abell, phó giám đốc đã về hưu của trung tâm tin học Đại học Purdue.

Các tập tin được mở trong hệ thống bao gồm các tập tin trên đĩa, đường ống, socket mạng và các thiết bị được sử dụng bởi các tiến trình. Một ví dụ cho ứng dụng của chương trình là khi không thể gỡ một ổ đĩa ra khỏi hệ thống vì một số tập tin đang được sử dụng. Chương trình sẽ liệt kê những tệp đang mở và tiến trình nào đang sử dụng chúng.

 # lsof /var
 COMMAND     PID     USER   FD   TYPE DEVICE SIZE/OFF     NODE NAME
 syslogd     350     root    5w  VREG  222,5        0 440818 /var/adm/messages
 syslogd     350     root    6w  VREG  222,5   339098   6248 /var/log/syslog
 cron        353     root  cwd   VDIR  222,5      512 254550 /var -- atjobs

Lệnh để xuất ra các cổng đang được một daemon sử dụng:

  # lsof -i -n -P | grep sendmail
  sendmail  31649    root    4u  IPv4 521738       TCP *:25 (LISTEN)

Ta có thể thấy dịch vụ "sendmail" đang chờ kết nối trên cổng "25".

-i  Liệt kê các IP socket.
-n Không phân giải tên máy chủ.
-P Không phân giải tên cổng (hiển thị số cổng thay vì tên cổng).

Lệnh sau liệt kê các socket trên Unix: lsof -U

Đọc thêm 
 stat (Unix)
 netstat
 strace
 Process Explorer from SysInternals - the equivalent for Windows (Find menu -> Find Handle or DLL)

Tham khảo

Liên kết ngoài 
 lsof manpage on www.netadmintools.com
 Troubleshooting Runnings Systems with lsof 
 Lsof FAQ  
 Sam Nelson's PCP  script, an alternative to "lsof -i" for Solaris.

Phần mềm cho Unix