Love Sun

linux查看程序端口占用情况

今天发现服务器上Tomcat 8080端口起不来,老提示端口已经被占用。

使用命令:

ps -aux | grep tomcat

发现并没有8080端口的Tomcat进程。

使用命令:netstat –apn

查看所有的进程和端口使用情况。发现下面的进程列表,其中最后一栏是PID/Program name

20160716001

发现8080端口被PID为9658的Java进程占用。

进一步使用命令:ps -aux | grep java,或者直接:ps -aux | grep pid 查看

20160716002

就可以明确知道8080端口是被哪个程序占用了!然后判断是否使用KILL命令干掉!

方法二:直接使用 netstat   -anp   |   grep  portno
即:netstat –apn | grep 8080

20160716003

linux下查看端口占用情况:

1.查看哪个进程占用了819端口:

case9-sghfofo:/usr/local/cnbj/tomcat-bj/bin # lsof -i:859

运行后的结果:

COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME

java 24907 root 31u IPv4 248905027 TCP *:859 (LISTEN)

由以上我们知道了859端口被进程号为24907的进程占用了, 是个java进程。

2.查看进程号为24907的进程在哪里:

case9-sghfofo:/usr/local/cnbj/tomcat-bj/bin # ps -ef|grep 24907

root 13421 29276 0 20:08 pts/2 00:00:00 grep 24907

root 24907 1 0 11:43 pts/4 00:03:53 /usr/java/jdk1.6.0_13/bin/java -server -XX:PermSize=256M -XX:MaxPermSize=512m -Xbootclasspath/p:java-net-Socket.jar -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/usr/local/cnsh/tomcat-sh/conf/logging.properties -Djava.endorsed.dirs=/usr/local/cnsh/tomcat-sh/bin/endorsed -classpath :/usr/local/cnsh/tomcat-sh/bin/bootstrap.jar -Dcatalina.base=/usr/local/cnsh/tomcat-sh/bin -Dcatalina.home=/usr/local/cnsh/tomcat-sh/bin -Djava.io.tmpdir=/usr/local/cnsh/tomcat-sh/bin/temp -Xmx512m -Xms256m org.apache.catalina.startup.Bootstrap start

由以上我们知道是目录为/usr/local/cnsh/tomcat-sh/bin/的tomcat占用了

Tagged on:

Leave a Reply

Your email address will not be published. Required fields are marked *