常用操作系统管理 返回
-
如何解决端口已被使用的问题
-
Web 服务器启动失败 8080 端口已被使用
拉贾·安巴扎甘2021 年 2 月 21 日
在这篇文章中,我们将尝试了解Web服务器 启动 失败 端口 8080 已在使用中的错误以及如何修复它。
为什么端口 8080 已被使用?
在网络中,IP 地址标识每台机器。同样,网络端口标识机器上运行的应用程序或进程。当应用程序想要使用一个端口时,操作系统会绑定一个。但是,当多个应用程序要使用同一个端口时,就会出现端口冲突。
在我们的例子中,端口 8080 已经被另一个应用程序使用,因此web 服务器无法启动。通常,您会在端口 8080、8081、9090 等情况下收到此错误。因此,通常,如果您收到“端口 8080 已在使用”错误,则可以确定另一个应用程序已在使用该端口.
这很可能是由于您的最终配置错误,多次运行应用程序,或者没有使用正确的启动和关闭脚本。
修复Web服务器启动失败
众所周知,原因是另一个进程正在同一端口上运行。要解决这个问题,您有两个选择。
- 尝试在 8080 以外的端口上运行应用程序。
- 识别并停止在该特定端口上运行的进程
选项 1:在不同的端口上运行您的 Web 服务器
大多数应用程序框架都提供了更改它们侦听的端口的选项。例如,您可以通过以下方式更改 Spring Boot 应用程序的应用程序端口。
您可以在 application.properties 文件中提供具有不同端口号的server.port配置。
server.port=9090
代码语言: 属性 (properties )
您还可以将端口号作为应用程序参数传递。
java - jar my-server.jar --server.port=9090
代码语言: bash ( bash )
或 JVM 参数。
java - jar -Dserver.port=9090 my-server.jar
代码语言: bash ( bash )
这样,应用程序在不同的端口上启动。因此“Web 服务器无法启动。避免了端口 8080 已在使用中”错误。
有一篇关于如何以5 种不同方式更改默认 tomcat 端口号的详细帖子。您还可以在其官方文档中找到有关 Spring Boot 配置如何工作的更多详细信息。
选项 2:杀死在端口 8080 上运行的服务器
有时,另一个进程只是同一应用程序的旧实例或您不想运行的应用程序。在这些情况下,最好识别并杀死它们,以便您可以在该特定端口上启动应用程序。为此,您需要首先确定流程。其次,你需要杀死它。
假设您在端口 8080 上运行时遇到错误。那么您应该使用以下命令来识别进程或服务。
在 Linux/Mac 上查找并杀死在端口 8080 上运行的进程
以下命令之一应提供在端口 8080 上运行的应用程序或服务的进程 ID (PID)。
sudo lsof -n -i :8080 | grep LISTEN sudo netstat -nlp | grep :8080 sudo ss -lptn 'sport = :8080'
代码语言: bash ( bash )
python http服务器在端口8080上运行,PID为25321
使用上述输出中的 PID,您可以使用以下命令终止该进程。
#to kill process gracefully kill -15 25321
代码语言: bash ( bash )
或者
#To force kill a process kill -9 25321
代码语言: bash ( bash )
通过杀掉占用8080端口的进程,web服务器就可以正常启动了。
为了您的使用,请将进程 ID 替换为您在机器上找到的进程 ID。
在windows上查找并杀死在8080端口上运行的进程
同样,您可以运行以下命令来识别 Windows 中端口上运行的进程。
netstat -ona | findstr :8080 | findstr LISTENING
代码语言: bash ( bash )
进程 23928 监听 8080 端口
获得进程 ID 后,可以使用以下命令将其杀死。
taskkill /PID 25321 /F
代码语言: bash ( bash )
正如我之前所说,对于您的机器,进程 ID 可能不同。
/F
那里可以强制终止进程。在大多数情况下,您不需要此标志。结论
因此,我们了解了端口的工作原理以及如何解决应用程序启动时出现“端口 8080 已被使用”的错误。如果您喜欢这篇文章,那么您可能想阅读以下标题
-