今天發現服務器上Tomcat 8080端口起不來,老提示端口已經被佔用。
使用命令:
ps -aux | grep tomcat
發現並沒有8080端口的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佔用了。