我试图找到具有最大文件描述符的进程
我找到了这个解决方案这里
lsof -Fpcn | awk '
/^p/ { pid=substr($0,2) }
/^c/ { cmd=substr($0,2) }
/^n/ { fd[cmd"["pid"]"]++ }
END { for (cc in fd) printf("%-20s %i\n",cc,fd[cc]) } ' | sort -n -k 2
这组命令运行良好,
我能够过滤掉少于 15 个描述符的进程,
我试图详细说明进程详细信息,
所以我想从 ps 中提取有关进程的信息,例如:
ps -ef | grep 30394
我能够像这样进行过滤:
END {
for (cc in fd) {
if(fd[cc] > 15){
printf("%-20s %i\n",cc,fd[cc])
}
}
} ' | sort -n -k 2
但我不知道如何获取进程信息。
当我尝试像这样合并 ps -ef 时:
printf("%-20s %i process details: %s \n",cc,fd[cc] , "$(ps -ef | grep fd[cc])" ) ;
它只是打印出来:
lsof[7626] 17 process details: $(ps -ef | grep fd[cc])