应用程序无法启动,出现错误"无法启动子项:Odt.Endpoint"

时间:2015-12-14 19:14:59

标签: ubuntu elixir phoenix-framework

命令"混合phoenix.server"总是收到错误:

=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}

我该如何解决?我做错了什么?

2 个答案:

答案 0 :(得分:5)

如果他们遇到这个问题,其他人可以找到答案:

这一行:

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

表示某些内容已经在使用4000端口(这是Phoenix的默认端口)。尝试检查此http://localhost:4000以查看是否有任何内容。如果这样做,则通过更改dev.exs文件来修改Phoenix打开的端口。

答案 1 :(得分:1)

我正在使用mac,所以这个答案对于linux来说是一样的

只需运行lsof -i :4000即可查看哪些进程正在使用该端口。

一旦确定了对应于phoenix(beam.smp)的那个,就直接杀死进程

kill -9 PID

或者您可以killall beam.smp

干杯