地址已被 puma-dev 使用

Address already in use for puma-dev

问题

每当我尝试 运行

bundle exec puma -C config/puma.rb --port 5000

我不断得到

bundler: failed to load command: puma (/Users/ogirginc/.asdf/installs/ruby/2.7.2/bin/puma)
Errno::EADDRINUSE: Address already in use - bind(2) for "0.0.0.0" port 5000

尝试过的东西

我已经尝试了所有我能想到或读到的东西。这是列表:

1.好老重启mac.

2。找到PID杀掉。

COMMAND    PID     USER   FD   TYPE            DEVICE SIZE/OFF NODE NAME
ControlCe 6071 ogirginc   20u  IPv4 0x1deaf49fde14659      0t0  TCP *:commplex-main (LISTEN)
ControlCe 6071 ogirginc   21u  IPv6 0x1deaf49ec4c9741      0t0  TCP *:commplex-main (LISTEN)
> lsof -wni tcp:5000
COMMAND    PID     USER   FD   TYPE            DEVICE SIZE/OFF NODE NAME
ControlCe 6071 ogirginc   20u  IPv4 0x1deaf49fde14659      0t0  TCP *:commplex-main (LISTEN)
ControlCe 6071 ogirginc   21u  IPv6 0x1deaf49ec4c9741      0t0  TCP *:commplex-main (LISTEN)

3。使用HTOP寻杀

PID USER      PRI  NI  VIRT   RES S CPU% MEM%   TIME+  Command
661 ogirginc   17   0  390G  6704 ?  0.0  0.0  0:00.00 /opt/homebrew/bin/puma-dev -launchd -dir ~/.puma-dev -d localhost -timeout 15m0s -no-serve-public-paths

附加信息

2021/10/26 09:48:14 Existing valid puma-dev CA keypair found. Assuming previously trusted.
* Directory for apps: /Users/ogirginc/.puma-dev
* Domains: localhost
* DNS Server port: 9253
* HTTP Server port: inherited from launchd
* HTTPS Server port: inherited from launchd
! Puma dev running...

感觉好像遗漏了一些明显的东西。 可能是由于对 puma-dev. 的一些关键部分和较低部分缺乏理解,如果能通过一些简单的解释解决这个问题,我将不胜感激。提前致谢! :)

为什么

嗯,这很有趣。我之前没有想到要搜索 lsofCOMMAND 列。

事实证明,ControlCe 表示“控制中心”,从 Monterey 开始,macOS 默认监听端口 50007000

解决方案

  1. 转到系统偏好设置 > 共享
  2. 取消选中 AirPlay Receiver
  3. 现在,您应该可以像往常一样重新启动 puma

来源:https://developer.apple.com/forums/thread/682332