偵測程序句柄泄露的統計方法
lsof – p PIDPID 是指我們要偵測程序的進程號,可以用命令 ps – ef 來得到。我們以進程號 14946 為例:
# lsof -p 14946 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME rpc.rquot 14946 root cwd DIR 3,2 4096 2 / rpc.rquot 14946 root rtd DIR 3,2 4096 2 / rpc.rquot 14946 root txt REG 3,2 65292 267543 /usr/sbin/rpc.rquotad rpc.rquot 14946 root mem REG 3,2 45889 535442 /lib/libnss_files-2.3.4.so rpc.rquot 14946 root mem REG 3,2 1454802 541622 /lib/tls/ libc-2.3.4.so …… |
# lsof -p 14946 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME rpc.rquot 14946 root cwd DIR 3,2 4096 2 / rpc.rquot 14946 root rtd DIR 3,2 4096 2 / rpc.rquot 14946 root txt REG 3,2 65292 267543 /usr/sbin/rpc.rquotad rpc.rquot 14946 root mem REG 3,2 45889 535442 /lib/libnss_files-2.3.4.so rpc.rquot 14946 root mem REG 3,2 1454802 541622 /lib/tls/ libc-2.3.4.so ……
每一行就代表該進程正在使用的一個文件,即句柄。統計行數總和就是該進程打開的所有句柄數量,這為我們用統計方法偵測句柄泄露提供的依據。