Linux查看程序端口占用情况
今天发现服务器上Tomcat 8080端口起不来,老提示端口已经被占用。
使用命令:
ps -aux | grep tomcat
发现并没有8080端口的Tomcat进程。
sudo killall -9 java/tomcat
可以停止掉所有端口
使用命令:netstat –apn
查看所有的进程和端口使用情况。发现下面的进程列表,其中最后一栏是PID/Program name
发现8080端口被PID为9658的Java进程占用。
进一步使用命令:ps -aux | grep java,或者直接:ps -aux | grep pid 查看
就可以明确知道8080端口是被哪个程序占用了!然后判断是否使用KILL命令干掉!
方法二:直接使用 netstat -anp | grep portno
即:netstat –apn | grep 8080
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占用了。