window 和 linux 環境下殺死tomcat進程——也可以解決其他端口被占用的問題


1、應用場景

  在Windows或者linux操作系統中,我們在啟動一個tomcat服務器時,經常會發現8080端口已經被占用的錯誤,而我們又不知道如何停止這個tomcat服務器。

2、window環境下殺死進程

1、首先查找到占用8080端口的進程號PID是多少(tomcat默認是8080端口,假如你修改了tomcat的監聽端口,請輸入你的tomcat端口號

netstat -ano | findstr 8080

  這個命令輸出的最后一列表示占用8080端口的進程號是多少,假設為9572

 

2、kill掉這個進程

taskkill /f /pid 9572

 

  這樣8080端口就是釋放了。

3、linux操作系統下關閉tomcat進程

1、看是否已經有tomcat在運行

ps -ef |grep tomcat 

  如果有tomcat有在運行將有類似下面的結果:

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

2、殺死進程

  執行下面的命令

pid = 5144 kill -9 5144 

  就可以徹底殺死tomcat。

3、獲取某個端口占用情況

  如下面獲取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

4、遇到的異常情況

  當我再啟動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

  即可正常啟動了。

  致謝:感謝您的閱讀!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM