我有一个应用程序快要用完文件描述符了,显然是通过打开套接字来实现的,但是我无法确切地找到这些套接字的作用。这些在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
。
这些插座是什么,我如何找出它们的作用?
编辑:我已经尝试过运行grep $SOCKET /proc/net
,如lsof FAQ中的建议 ,其中$ SOCKET例如263746679,但这也没有给出结果。
作为背景,该应用程序是多个任务的容器,这些任务尤其执行网络调用。我需要挑出一个发疯的东西,但是直到我发现那些套接字与谁通信为止,我还是被卡住了。