Почему lsof не показывает локальные TCP-соединения в 14.04?
У меня есть два сервера, работающие 12.04.4 и 14.04.1 соответственно. Оба имеют nginx (порт 80) и процесс Java (порт 8080).
Как и ожидалось, вывод lsof для процесса Java (sudo lsof -nP -p $PID
) на машине 12.04 показывает пару установленных соединений для порта 8080 (например, TCP 127.0.0.1:8080->127.0.0.1:58067 (ESTABLISHED)
)
Однако машина 14.04 этого не делает. Показывает только порт прослушивания (TCP *:8080 (LISTEN)
). Я уверен, что есть активные соединения (подтверждается журналами доступа, выводом статуса процесса Java и т. Д.).
Что изменилось с 12.04, чтобы привести к такому поведению? Может ли это изменение стать причиной ошибок "Слишком много открытых файлов", которые я получаю после перехода с 12.04 на 14.04?
12,04:
$ dpkg -l lsof linux-image-virtual openjdk-7-jre nginx
||/ Name Version
+++-===========================================-===========================================
ii linux-image-virtual 3.2.0.59.70
ii lsof 4.81.dfsg.1-1build1
ii nginx 1.6.1-1~precise
ii openjdk-7-jre 7u65-2.5.1-4ubuntu1~0.12.04.1
14,04:
$ dpkg -l lsof linux-image-virtual openjdk-7-jre nginx-full
||/ Name Version Architecture Description
+++-=====================================-=======================-=======================
ii linux-image-virtual 3.13.0.32.38 amd64
ii lsof 4.86+dfsg-1ubuntu2 amd64
ii nginx-full 1.4.6-1ubuntu3 amd64
ii openjdk-7-jre:amd64 7u65-2.5.1-4ubuntu1~0.1 amd64