一、應用場景java
在Windows或者linux操做系統中,咱們在啓動一個tomcat服務器時,常常會發現8080端口已經被佔用的錯誤,而咱們又不知道如何中止這個tomcat服務器。linux
二、window環境下殺死進程apache
一、首先查找到佔用8080端口的進程號PID是多少(tomcat默認是8080端口,假如你修改了tomcat的監聽端口,請輸入你的tomcat端口號)bootstrap
netstat -ano | findstr 8080
這個命令輸出的最後一列表示佔用8080端口的進程號是多少,假設爲9572api
二、kill掉這個進程tomcat
taskkill /f /pid 9572
這樣8080端口就是釋放了。服務器
三、linux操做系統下關閉tomcat進程socket
一、看是否已經有tomcat在運行ui
ps -ef |grep tomcat
若是有tomcat有在運行將有相似下面的結果:spa
sun 5144 1 0 10:21 pts/1 00:00:06 /java/jdk/bin/java -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.endorsed.dirs=/java/tomcat/common/endorsed -classpath :/java/tomcat/bin/bootstrap.jar:/java/tomcat/bin/commons-logging-api.jar
-Dcatalina.base=/java/tomcat -Dcatalina.home=/java/tomcat -Djava.io.tmpdir=/java/tomcat/temp org.apache.catalina.startup.Bootstrap start
從上面的輸出信息,咱們能夠知道tomcat執行的進程號爲5144
二、殺死進程
執行下面的命令
pid = 5144 kill -9 5144
就能夠完全殺死tomcat。
三、獲取某個端口占用狀況
以下面獲取5533號端口占用的狀況。
sudo lsof -i :5533
結果以下:能夠看到進程號爲2960,咱們只要殺死它便可。
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 2960 zhengcanrui 55u IPv6 0xb866409b03202701 0t0 TCP *:5533 (LISTEN)
殺死進程命令:
kill -9 2960
四、遇到的異常狀況
當我再啓動IDEA的tomcat時,報了下面的錯誤
Connected to the target VM, address: '127.0.0.1:50363', transport: 'socket'
錯誤: 代理拋出異常錯誤: java.rmi.server.ExportException: Port already in use: 1099; nested exception is:
java.net.BindException: Address already in use: JVM_Bind
Disconnected from the target VM, address: '127.0.0.1:50363', transport: 'socket'
報錯的主要緣由是1099端口被佔用了,咱們須要殺死該進程。
執行以下命令便可:
netstat -ano | findstr 1099
得知它的進程號:我查出來是9992
殺死9992號進程
taskkill /f /pid 9992
便可正常啓動了。
致謝:感謝您的閱讀!