我正在開發一個在 Linux 機器上運行它的 Spring Boot 應用程式。它是一個批處理應用程式,包含偵聽 8080 埠的Spring Boot 管理工具。
我有以下“問題”:我第一次使用這個命令將它運行到我的 shell 中:
mvn spring-boot:run
它正確啟動,我可以在這個地址訪問Spring Boot Admin工具面板http://localhost:8080/
假設我通過單擊鍵盤上的CTRL Z來停止批處理應用程式的執行,因此 Spring Boot 應用程式現在已停止,并且我獲得了以下輸出訊息:
[1] Stopped mvn spring-boot:run
好的,現在如果我通過相同的啟動命令再次運行我的應用程式:
mvn spring-boot:run
現在我收到此錯誤訊息:
Description:
Web server failed to start. Port 8080 was already in use.
Action:
Identify and stop the process that's listening on port 8080 or configure this application to listen on another port.
因此,如果我執行此命令來查找正在偵聽埠 8080 的行程:
andrea@ubuntu:~/git/notartel-api-batch$ netstat -ltnp | grep -w ':8080'
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp6 2 0 :::8080 :::* LISTEN 16269/java
如果現在我殺死了前一個行程,我再次重新啟動我的 Spring Boot 應用程式,它將毫無問題地啟動。
為什么如果我退出監聽 8080 埠的 Spring Boot 應用程式(使用 CTRL Z 進入 Linux shell),這個行程仍然監聽這個埠?我預計整個應用程式將被殺死并且沒有任何東西監聽埠
uj5u.com熱心網友回復:
Ctrl Z不會終止應用程式,而是將其掛起并將其置于后臺,Ctrl C如果您想中止正在運行的應用程式,請使用。
uj5u.com熱心網友回復:
如果你正在運行這個
mvn spring-boot:run
在其他一些終端上,如果您關閉 IDE,該行程將不會停止偵聽埠。
而不是運行 mvn spring-boot:run 你可以只運行應用程式的主檔案。之后,當您關閉應用程式時,埠將不會偵聽。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/338743.html
上一篇:格式化腳本輸出
下一篇:如何在遞回函式中保持值不變?
