运行debian jessie。 以root身份完成以下操作以避免任何权限问题。 首先我find我的程序的PID,然后检查它的打开的文件限制,以validation它设置为1024.但是,当我计算打开文件的数量,我发现1851年。
$ pgrep -x process_name 673 $ prlimit --pid 673 --nofile RESOURCE DESCRIPTION SOFT HARD UNITS NOFILE max number of open files 1024 4096 $ lsof -n -p 673 | grep -c "IPv4" 1851
为了更好的衡量,我检查过程没有任何subprocess,它可能是委托文件开头:
$ pgrep -P 673 # no output
这里怎么了?
因为按照你使用lsof的方式,你正在计算所有的东西,不仅是文件描述符,而且是这样的:
lsof -n -p <pid_number> | awk '$5 ~ /([0-9].+)/'
但更简单的方法是:
ls -l /proc/673/fd | wc -l