【问题标题】:Killing MailCatcher: Something's using port 1025杀死 MailCatcher:有东西在使用 1025 端口
【发布时间】:2014-09-09 22:02:11
【问题描述】:

我正在尝试为 Rails 应用程序运行“工头启动”,但是此错误消息阻止我正确运行工头:

~~> 错误:有东西在使用端口 1025。你是否已经在运行 邮件捕手?

我已经尝试杀死 PID,进入 Web 界面退出程序,还...重新启动 comp。有谁知道如何解决这个问题?

谢谢

【问题讨论】:

  • 您是否在运行 NFS? According to Wikipedia,NFS 将使用该端口。
  • @MisterDood 你说得对。我在我的 vagrant box 旁边使用 NFS,当停用 NFS 同步时,错误消息消失了。考虑到我在 MBP(相同的 vagrant box)中完成了相同的配置,这很奇怪。

标签: ruby-on-rails foreman mailcatcher


【解决方案1】:

如果您使用的是 linux,您应该能够使用 netstat 命令查看哪个程序正在使用某个端口。要查看端口 1025 是否正在使用,请从命令行运行:

$ netstat -tulpn | grep :1025

这是一个有用的参考: http://www.cyberciti.biz/faq/what-process-has-open-linux-port/

【讨论】:

  • 我已经使用 lsof|grep :1025 执行了命令。用 kill -9 PID 杀死 PID。但是我仍然收到错误消息。不过谢谢!
【解决方案2】:

在 OSX 中,在 shell 中运行以下命令:

sudo lsof -nP -iTCP:1025 -sTCP:LISTEN

此命令的预期输出是一个进程,它正在侦听端口 1025:

ruby    43841 youruserid    9u  IPv4 0x6a1610da80bb9b4f      0t0  TCP 127.0.0.1:1025 (LISTEN)

在上面的输出中,第二个值是进程 ID。然后,杀死有问题的进程(替换为正确的 PID):

sudo kill 43841

【讨论】:

  • 如果进程在每次你试图杀死它时都以新的 PID 重新启动怎么办?有什么想法吗?
  • 那么可能有一些其他进程正在运行,如果它还没有打开的话,它会确保 mailcatcher 处于打开状态。
  • 是的,看起来就是这样。另外对我来说问题不是邮件捕获程序,而是发送电子邮件的代码,但无论如何谢谢!
  • 在邮件捕手浏览器窗口右上角使用退出选项
  • 只有这个答案在 Mac 上对我有用。在 Mac 上,从 127.0.0.1:1080 Web 界面单击“退出”对我来说根本不起作用。
【解决方案3】:

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 网址 (http://127.0.0.1:1080)。

    注意:端口可能不同于1080。如果是这样,您将不得不使用该端口。如果您不知道,则必须使用此处的其他答案之一来终止正在运行的进程。

  2. 在打开的页面的右上角,您会看到一个“退出”链接。

【讨论】:

  • 如果我无法访问 http url,如何退出。 (在远程服务器中运行)
  • 我找到了答案sudo lsof -nP -iTCP:1025 -sTCP:LISTEN sudo kill
  • 我使用退出按钮并刷新页面,VIOLA 它还在运行。
【解决方案4】:

我通过在不同的端口上启动 mailcatcher 解决了这个问题: mailcatcher --smtp-port 1026

并在config/development.rb中更改以下内容

config.action_mailer.smtp_settings = {
  ...
  port: 1026,
  ...
}

【讨论】:

【解决方案5】:

为避免这种情况,请在容器中使用 mailcatcher。你可以在 docker hub 中找到一些,这里是my cut

【讨论】:

    【解决方案6】:

    试试launchctl remove me.mailcatcher

    【讨论】:

      【解决方案7】:

      一个很好的建议。如果您已经以某种方式配置或运行“postfix”,只需停止它以获取“Mail Catcher”中的邮件

      sudo systemctl stop postfix
      

      【讨论】:

        【解决方案8】:

        获取 mailcatcher 正在使用的端口的进程 ID

        lsof -i tcp:1080 
        lsof -i tcp:1025
        

        杀死他们:

        kill 37747 
        kill 35647
        

        【讨论】:

          【解决方案9】:

          把它放在这里以防它帮助别人。

          我错误地访问了http://localhost:1025/,而我需要访问http://localhost:1080/

          转到http://localhost:1080/,希望mailcatcher 能按预期运行

          【讨论】:

            猜你喜欢
            • 2016-05-04
            • 2019-02-03
            • 1970-01-01
            • 2016-08-28
            • 1970-01-01
            • 1970-01-01
            • 2018-05-26
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多