我正在尝试为rails应用程序运行“foreman start”但是这条错误消息阻止我正确运行领班:
~~>错误:有些东西正在使用端口1025.您是否已经在运行MailCatcher?
我试过杀死PID,进入Web界面退出程序,还...重新启动comp。有人知道如何解决这个问题吗?
谢谢
在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
MailCatcher启动SMTP和HTTP服务器。
$ 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
Starting MailCatcher
~~> ERROR: Something's using port 1025. Are you already running 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。您可以在码头中心找到一些,这里是my cut。
试试launchctl remove me.mailcatcher
一个很好的建议。如果您已经以某种方式“postfix”配置或运行只是停止它以获取邮件“邮件捕手”
sudo systemctl stop postfix
获取mailcatcher正在使用的端口的进程ID
lsof -i tcp:1080
lsof -i tcp:1025
杀了我:
kill 37747
kill 35647