Убийство MailCatcher: что-то использует порт 1025
Я пытаюсь запустить "запуск мастера" для приложения rails, однако это сообщение об ошибке не позволяет мне правильно запустить мастер:
~~> ОШИБКА: что-то использует порт 1025. Вы уже используете MailCatcher?
Я пытался убить PID, зайти в веб-интерфейс, чтобы выйти из программы, а также... перезапустить компьютер. Кто-нибудь знает, как это исправить?
Спасибо
10 ответов
В OSX выполните следующее в оболочке:
sudo lsof -nP -iTCP:1025 -sTCP:LISTEN
Ожидаемый вывод этой команды - процесс, который прослушивает порт 1025:
ruby 43841 youruserid 9u IPv4 0x6a1610da80bb9b4f 0t0 TCP 127.0.0.1:1025 (LISTEN)
В приведенном выше выводе 2-е значение - это идентификатор процесса. Затем, чтобы убить нарушающий процесс (подставьте в правильный PID):
sudo kill 43841
MailCatcher запускает как SMTP, так и HTTP-серверы.
Когда вы запустите MailCatcher в терминале, вы увидите следующий вывод:
$ mailcatcher
Starting MailCatcher
==> smtp://127.0.0.1:1025
==> http://127.0.0.1:1080
*** MailCatcher runs as a daemon by default. Go to the web interface to quit.
Видите последнюю строку в выводе при запуске MailCatcher?
Если вы попытаетесь запустить MailCatcher, если он уже запущен, вы увидите:
$ mailcatcher
Starting MailCatcher
~~> ERROR: Something's using port 1025. Are you already running MailCatcher?
Как выйти из Mailcatcher:
Открой
http
URL ( http://127.0.0.1:1080/) в вашем браузере.Примечание: порт может отличаться от
1080
, Если это так, вам придется использовать этот порт. Если вы этого не знаете, вам придется использовать один из других ответов, чтобы убить запущенный процесс.- В правом верхнем углу открывшейся страницы вы увидите ссылку "Выйти".
Если вы используете Linux, вы сможете увидеть, какая программа использует определенный порт с помощью команды netstat. Чтобы увидеть, используется ли порт 1025, запустите его из командной строки:
$ netstat -tulpn | grep :1025
Вот полезная ссылка: http://www.cyberciti.biz/faq/what-process-has-open-linux-port/
Я решил это, запустив mailcatcher на другом порту:mailcatcher --smtp-port 1026
И меняя следующее в config/development.rb
config.action_mailer.smtp_settings = {
...
port: 1026,
...
}
Получить идентификаторы процессов портов, которые использует mailcatcher
lsof -i tcp:1080
lsof -i tcp:1025
кончай их:
kill 37747
kill 35647
Чтобы избежать такой ситуации, используйте mailcatcher в контейнере. Вы можете найти несколько в док-центре, вот мой разрез.
Другой способ убить MailCatcher в этой ситуации, если вы используете Mac:
Вручную остановите все процессы ruby, которые вы запускаете локально, а затем откройте Activity Monitor, нажавCommand + Space
(чтобы вызвать Spotlight) и введите «Мониторинг активности», чтобы найти и открыть приложение.
В Мониторе активности отсортируйте процессы поProcess Name
. Найдите все названные процессы, которые продолжают работать:
Нажмите на любой процесс, который вы хотите убить, и нажмите кнопкуStop Process
кнопку в верхней части окна.
После ручной остановки всех процессов и последующего уничтожения всех оставшихсяruby
таким образом, вы сможете успешно запустить MailCatcher.
Хороший совет. Если вы уже настроили или запустили "postfix", просто остановите его, чтобы получать письма в "Mail Catcher"
sudo systemctl stop postfix
Поместите это здесь, если это поможет кому-то еще.
Я совершил ошибку, посетив http://localhost:1025/, тогда как мне нужно было находиться на .
Перейдите по http://localhost:1080/адресу http://localhost:1080/ и, надеюсь, mailcatcher работает как положено.