Адрес, уже используемый для puma-dev

#ruby-on-rails-5 #puma #macos-monterey #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 и уничтожьте.

  • Выполнить 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)
 
  • Убейте с sudo kill -9 6071 помощью .
  • Когда я его уничтожаю, он перезапускается с новым PID.
 > 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 для поиска и уничтожения

  • Фильтруйте с puma помощью .
  • Найдено совпадение.
 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
 
  • Убейте его с sudo kill -9 661 помощью .
  • Перезапущен с новым PID.

Дополнительная информация

  • версия rails есть 5.2.6 .
  • версия puma 4.3.8 .
  • версия puma-dev есть 0.16.2 .
  • Вот журналы для puma-dev:
 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 . Я был бы очень признателен, если бы это было решено с помощью простого объяснения. Заранее спасибо! 🙂

Ответ №1:

Почему

Что ж, это интересно. Раньше я не думал о поиске lsof COMMAND столбца «s».

Оказывается, ControlCe означает «Центр управления» и, начиная с Monterey, macOS прослушивает порты 5000 и 7000 по умолчанию.

Решение

  1. Перейдите в Системные настройки> Общий доступ
  2. Снимите флажок AirPlay Receiver .
  3. Теперь вы сможете перезапустить puma как обычно.

Источник: https://developer.apple.com/forums/thread/682332

Комментарии:

1. @ogriginc Спасибо. Сработал как шарм!