我有两台服务器,分别运行 12.04.4 和 14.04.1。两者都有 nginx(端口 80)和一个 Java 进程(端口 8080)。
正如预期的那样,12.04 计算机上 Java 进程 () 的 lsof 输出sudo lsof -nP -p $PID
显示了端口 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