无法绑定到 0.0.0.0:8080,它可能正在使用或需要 sudo

Could not bind to 0.0.0.0:8080, it may be in use or require sudo

有时我在尝试从 Xcode 运行 Vapor 应用程序时遇到此错误。重新打开 Xcode 没有帮助,只有重新启动系统才有用。这是框架的错误吗?我应该怎么做才能防止这种情况发生?

如果使用 sudo 无法修复此消息,则表示已将某些内容绑定到此端口。可能是 Vapor 实例没有正确关闭。

要解决此问题,您需要终止前一个实例。最简单的方法是:

lsof -i tcp:8080

其中 8080 是您尝试使用的端口。这输出如下:

COMMAND    PID   USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
com.apple 4679 tanner    8u  IPv4 0x890f6b0b31966939      0t0  TCP 

然后使用 PID.

终止绑定到该端口的进程
kill -9 4679

虽然 Tanner 的回答在大多数情况下应该有所帮助,但对我来说 kill 命令没有效果也没有输出。所以我完全退出并重新启动了终端。 当 运行 lsof 找不到进程时,问题已解决。