РЕШЕНИЕ
Адрес уже используется - ошибка bind (2) ”500 в Ruby on Rails
Недавно я попытался запустить приложение Rails на производственном сервере. Это не только не сработало, но и сломало мой сервер разработки localhost: 3000. Localhost загрузит только пустую белую страницу или ошибку 500.
Чтобы решить эту проблему, я использовал две быстрые команды. Если они не вернут результат, возможно, вам придется поискать решение в другом месте, но это хорошее быстрое решение.
lsof -wni tcp: 3000
ruby 52179 rachelchervin 50u IPv6 0x ... 7aa3 0t0 TCP [:: 1]: hbci (СЛУШАТЬ)
ruby 52179 rachelchervin 51u IPv4 0x ... c7bb 0t0 TCP 127.0.0.1:hbci (СЛУШАТЬ)
ruby 52180 rachelchervin 50u IPv6 0x ... 7aa3 0t0 TCP [:: 1]: hbci (СЛУШАТЬ)
ruby 52180 rachelchervin 51u IPv4 0x ... c7bb 0t0 TCP 127.0.0.1:hbci (СЛУШАТЬ)
Эта команда показывает все мои текущие запущенные процессы и их PID (идентификаторы процессов) на порту 3000. Поскольку существуют существующие запущенные процессы, которые не закрылись правильно, мой новый сервер: 3000 не может запуститься, отсюда и ошибка 500.
убить 52179
убить 52180
рельсы s
Я использовал команду Linux kill, чтобы вручную остановить вредоносные процессы. Если у вас их больше 4, просто используйте kill для любых PID, пока первая команда не станет пустой. Затем попробуйте снова перезапустить сервер localhost: 3000. Это не повредит вашему компьютеру! Он просто убивает существующие процессы Ruby на вашем порту localhost. Новый сервер снова запустит эти процессы. Удачи!