Grails:解决"服务器无法启动端口8080:地址已在使用中".

egg*_*oll 17 grails

我试图解决" Server failed to start for port 8080: Address already in use" 时遇到此错误

 Error executing script 8888: For input string: ""
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?不知道出了什么问题.谢谢.

Abd*_*UMI 24

当端口号8080已经使用并且您想要重用相同的端口时,您应该终止其进程:

首先,检查使用端口8080的进程的pid.要执行此操作:

lsof -w -n -i tcp:8080
Run Code Online (Sandbox Code Playgroud)

运行Command后的结果

在上面的示例中,对于使用端口9090的进程,pid为3812

注意PID.您的机器上的PID可能不同.我们需要这个来执行下一个命令: 杀人过程

所以你必须通过run-app测试它:

grails run-app
Run Code Online (Sandbox Code Playgroud)

更新:由于输出lsof -w -n -i tcp:8080| awk '{print $2}'|awk 'END{print}'是PID,您可以自动通过PID终止端口进程:

 kill -9 `lsof -w -n -i tcp:8080| awk '{print $2}'|awk 'END{print}'`
Run Code Online (Sandbox Code Playgroud)

  • 你杀死进程的方法可以压缩为`kill -9 \`lsof -t -i tcp:8080 \`` (5认同)
  • 在Windows上,获取使用端口8080的进程的pid的命令是`netstat -a -n -o | 找到"8080"` (2认同)

Pha*_* VU 8

如果您使用的是Grails/Groovy Tool Suite(基于Eclipse的IDE),请选择Run as> Run Configurations .... 然后,在Grails选项卡中输入如下:

-Dserver.port=8050 run-app
Run Code Online (Sandbox Code Playgroud)

因此,Grails将在端口8050上运行而不是默认端口(8080).


小智 4

消息

服务器无法启动端口 8080:地址已在使用中

表明您计算机上的某些其他进程已将自身绑定到端口 8080。我猜想这是 Tomcat 正在运行的一个实例,因为您启动了它,或者您使用的任何 IDE 都没有正确关闭它。

无论如何,这个问题应该可以帮助您结束正在使用该端口的进程。

至于关于脚本8888的第二个错误,我不知道。Grails 不会尝试在我的环境中启动此脚本,因此我认为它与您已安装的插件有关。