J'ai une application qui manque de descripteurs de fichiers, apparemment en ouvrant des sockets, mais je n'arrive pas à savoir ce que font exactement ces sockets. Ils apparaissent dans la sortie lsof comme
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
et dans /proc/$PID/fd en tant que
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]
mais il n'y a pas de sortie similaire dans netstat -a
.
Que sont ces prises et comment puis-je savoir ce qu'elles font ?
Modifier : J'ai essayé d'exécuter grep $SOCKET /proc/net
comme recommandé dans le lsof FAQ où $SOCKET est par exemple 263746679, mais cela n'a pas donné de résultats non plus.
En arrière-plan, l'application est un conteneur pour de multiples tâches qui, entre autres, effectuent des appels réseau. J'ai besoin d'isoler celle qui devient folle, mais jusqu'à ce que je trouve avec qui ces sockets communiquent, je suis coincé.