我有一个用尽文件描述符的应用程序,显然是通过打开套接字,但我无法确切地知道这些套接字的作用.这些出现在lsof输出中
java 9689 appuser 1010u sock 0,5 263746675 can't identify protocol java 9689 appuser 1011u sock 0,5 263746676 can't identify protocol java 9689 appuser 1012u sock 0,5 263746677 can't identify protocol java 9689 appuser 1014u sock 0,5 263746678 can't identify protocol java 9689 appuser 1015u sock 0,5 263746679 can't identify protocol java 9689 appuser 1016u sock 0,5 263746681 can't identify protocol
并在/ proc / $PID / fd中
lrwx------ 1 appuser appuser 64 Jun 23 11:49 990 -> socket:[263732085] lrwx------ 1 appuser appuser 64 Jun 23 11:49 991 -> socket:[263732086] lrwx------ 1 appuser appuser 64 Jun 23 11:49 992 -> socket:[263735307] lrwx------ 1 appuser appuser 64 Jun 23 11:49 993 -> socket:[263732088] lrwx------ 1 appuser appuser 64 Jun 23 11:49 995 -> socket:[263735308] lrwx------ 1 appuser appuser 64 Jun 23 11:49 996 -> socket:[263735309] lrwx------ 1 appuser appuser 64 Jun 23 11:49 997 -> socket:[263745434] lrwx------ 1 appuser appuser 64 Jun 23 11:49 998 -> socket:[263745435] lrwx------ 1 appuser appuser 64 Jun 23 11:49 999 -> socket:[263745436]
但netstat -a中没有类似的输出.
这些插座是什么,我怎样才能知道它们的作用?
编辑:我已经尝试按照lsof FAQ中的建议运行grep $SOCKET / proc / net,其中$SOCKET例如是263746679,但是也没有给出任何结果.
作为背景,应用程序是多个任务的容器,其中包括执行网络调用.我需要挑出一个狂暴的那个,但直到我发现那些插座与谁通信,我才被卡住了.