Saya memiliki aplikasi yang kehabisan deskriptor file, tampaknya dengan membuka soket, tetapi saya tidak dapat mengetahui dengan tepat apa yang dilakukan soket ini. Ini muncul di output lsof sebagai
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
dan di / proc / $ PID / fd as
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]
tetapi tidak ada keluaran serupa di netstat -a
.
Apa soket ini dan bagaimana saya bisa mengetahui apa yang mereka lakukan?
Sunting : Saya telah mencoba menjalankan grep $SOCKET /proc/net
, seperti yang direkomendasikan di FAQ lsof , di mana $ SOCKET misalnya 263746679, tetapi itu tidak memberikan hasil juga.
Sebagai latar belakang, aplikasi adalah wadah untuk banyak tugas yang, antara lain, melakukan panggilan jaringan. Saya perlu memilih yang mengamuk, tetapi sampai saya tahu dengan siapa soket itu berkomunikasi, saya terjebak.