2015-12-14 33 views
0

命令后的“混合phoenix.server”总是收到错误:应用程序不启动,给出了错误“无法启动子:Odt.Endpoint”

=INFO REPORT==== 14-Dec-2015::20:55:48 === 

    application: logger 
    exited: stopped 
    type: temporary 

** (Mix) Could not start application odt: Odt.start(:normal, []) returned an error: shutdown: failed to start child: Odt.Endpoint 

** (Exit) shutdown: failed to start child: Phoenix.Endpoint.Server 

** (Exit) shutdown: failed to start child: {:ranch_listener_sup, Odt.Endpoint.HTTP} 

** (Exit) shutdown: failed to start child: :ranch_acceptors_sup 

** (Exit) {:listener_error, Odt.Endpoint.HTTP, :eaddrinuse} 

我怎样才能解决呢?我究竟做错了什么?

+0

刚刚送走的顶部我的头,我猜想最后一行(:eaddrinuse)意味着某些东西正在使用您试图为凤凰打开的端口。看看你做什么时得到:http:// localhost:4000。如果您的4000端口上有某些东西,那么您可以修改dev.exs文件中的端口。 –

+0

谢谢! 经过端口修改所有确定:) – imonah

+1

@imonah考虑回答你自己的问题,以便社区可以从你学到的东西中受益:) – whatyouhide

回答

5

只是让别人可以找到答案,他们应该遇到这样的问题:

这条线:

** (Exit) {:listener_error, Odt.Endpoint.HTTP, :eaddrinuse} 

意味着事情已经使用4000端口(这是凤凰的默认端口) 。请尝试检查http://localhost:4000以查看您是否看到任何内容。如果是这样,那么通过更改dev.exs文件修改Phoenix打开的端口。

+1

你猜对了,错误'EADDRINUSE'的字面意思是“给定的地址已经在使用中“。 http://man7.org/linux/man-pages/man2/bind.2.html#ERRORS –

+0

@PatrickOscity大声笑 - 我想它会支付我只是检查文档。 :) –

1

我使用的是Mac,所以这个答案将是相同的Linux

只需运行lsof -i :4000,看看哪些proceses正在使用的端口。

一旦你确定对应凤凰(beam.smp)之一,刚刚杀死进程

kill -9 PID

,或者你可以做killall beam.smp

干杯

相关问题