#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
по умолчанию.
Решение
- Перейдите в Системные настройки> Общий доступ
- Снимите флажок
AirPlay Receiver
. - Теперь вы сможете перезапустить
puma
как обычно.
Комментарии:
1. @ogriginc Спасибо. Сработал как шарм!