Убийство 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:

  1. Открой http URL ( http://127.0.0.1:1080/) в вашем браузере.

    Примечание: порт может отличаться от 1080, Если это так, вам придется использовать этот порт. Если вы этого не знаете, вам придется использовать один из других ответов, чтобы убить запущенный процесс.

  2. В правом верхнем углу открывшейся страницы вы увидите ссылку "Выйти".

Как выйти из MailCatcher

Если вы используете 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.

Пытаться launchctl remove me.mailcatcher

Хороший совет. Если вы уже настроили или запустили "postfix", просто остановите его, чтобы получать письма в "Mail Catcher"

sudo systemctl stop postfix

Поместите это здесь, если это поможет кому-то еще.

Я совершил ошибку, посетив http://localhost:1025/, тогда как мне нужно было находиться на .

Перейдите по http://localhost:1080/адресу http://localhost:1080/ и, надеюсь, mailcatcher работает как положено.

Другие вопросы по тегам