Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir 该应用程序未在observer中列出_Elixir_Phoenix Framework - Fatal编程技术网

Elixir 该应用程序未在observer中列出

Elixir 该应用程序未在observer中列出,elixir,phoenix-framework,Elixir,Phoenix Framework,虽然phenix服务器正常启动,但我无法在observer的应用程序列表中看到它 我所做的是: elixir -S mix phoenix.server 而且,它是另一个终端: iMac:~ Apple$ iex Erlang/OTP 18 [erts-7.3] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false] [dtrace] Interactive Elixir (1.2.4) - pres

虽然phenix服务器正常启动,但我无法在observer的应用程序列表中看到它

我所做的是:

elixir -S mix phoenix.server
而且,它是另一个终端:

iMac:~ Apple$ iex
Erlang/OTP 18 [erts-7.3] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]

Interactive Elixir (1.2.4) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> :observer.start
:ok
以下是我的应用程序的启动方式:

defmodule Rumbl do
  use Application

  # See http://elixir-lang.org/docs/stable/elixir/Application.html
  # for more information on OTP Applications
  def start(_type, _args) do
    import Supervisor.Spec, warn: false

    children = [
      # Start the endpoint when the application starts
      supervisor(Rumbl.Endpoint, []),
      # Start the Ecto repository
      supervisor(Rumbl.Repo, []),
      # Here you could define other workers and supervisors as children
      # worker(Rumbl.Worker, [arg1, arg2, arg3]),
    ]

    # See http://elixir-lang.org/docs/stable/elixir/Supervisor.html
    # for other strategies and supported options
    opts = [strategy: :one_for_one, name: Rumbl.Supervisor]
    Supervisor.start_link(children, opts)
  end

  # Tell Phoenix to update the endpoint configuration
  # whenever the application is updated.
  def config_change(changed, _new, removed) do
    Rumbl.Endpoint.config_change(changed, removed)
    :ok
  end
end
观察员:

那么,为什么我不能在《观察家》中看到它呢

编辑

我单击了观测者中的节点,然后单击“启用分发”,然后节点出现,但一旦选择了rumbl节点,我就会得到一个错误:

11:17:11.379 [error] [node: :rumbl@iMac, call: {:observer_backend, :sys_info, []}, reason: {:badrpc, :nodedown}]
尽管节点已启动并正在运行:

$ elixir --name rumbl -S mix phoenix.server
[info] Running Rumbl.Endpoint with Cowboy using http on port 4000
14 May 11:10:33 - info: compiled 5 files into 2 files, copied 3 in 2.9 sec
[info] GET /
[debug] Processing by Rumbl.PageController.index/2
  Parameters: %{}
  Pipelines: [:browser]
[info] Sent 200 in 104ms
我试着选择rumbl@iMac再一次,我得到了一个错误:

Child (unknown) crashed exiting:  <0.67.0> {{badmatch,{badrpc,nodedown}},
                                            [{observer_app_wx,handle_info,2,
                                              [{file,"observer_app_wx.erl"},
                                               {line,283}]},
                                             {wx_object,handle_msg,5,
                                              [{file,"wx_object.erl"},
                                               {line,432}]},
                                             {proc_lib,init_p_do_apply,3,
                                              [{file,"proc_lib.erl"},
                                               {line,240}]}]}
iex(2)> 
11:19:56.534 [error] ** wx object server #PID<0.67.0> terminating 
** Last message in was {:active, :rumbl@iMac}
** When Server state == {:state, #PID<0.59.0>, {:wx_ref, 327, :wxPanel, []},
 {:wx_ref, 330, :wxListBox, []}, {:wx_ref, 333, :wxScrolledWindow, []},
 {:paint, {:wx_ref, 342, :wxFont, []}, {:wx_ref, 346, :wxPen, []},
  {:wx_ref, 343, :wxBrush, []}, {:wx_ref, 344, :wxBrush, []},
  {:wx_ref, 345, :wxPen, []}}, :elixir,
 {:app,
  {{:box, 16, 47, 57, 23, {:str, 5, 5, '<0.35.0>', #PID<0.35.0>}},
   [{{:box, 89, 47, 58, 23, {:str, 5, 5, '<0.36.0>', #PID<0.36.0>}},
     [{{:box, 163, 47, 58, 23, {:str, 5, 5, 'elixir_sup', #PID<0.37.0>}},
       [{{:box, 237, 12, 103, 23,
          {:str, 5, 5, 'elixir_code_server', #PID<0.39.0>}}, []},
        {{:box, 237, 47, 72, 23, {:str, 5, 5, 'elixir_config', #PID<0.38.0>}},
         []},
        {{:box, 237, 82, 80, 23, {:str, 5, 5, 'elixir_counter', #PID<0.40.0>}},
         []}]}]}]}, :undefined, [], {356, 117}}, :undefined, :undefined, true}
** Reason for termination == 
** {{:badmatch, {:badrpc, :nodedown}},
 [{:observer_app_wx, :handle_info, 2, [file: 'observer_app_wx.erl', line: 283]},
  {:wx_object, :handle_msg, 5, [file: 'wx_object.erl', line: 432]},
  {:proc_lib, :init_p_do_apply, 3, [file: 'proc_lib.erl', line: 240]}]}


11:19:56.549 [error] GenServer :appmon_info terminating
** (MatchError) no match of right hand side value: {:badrpc, :nodedown}
    observer_app_wx.erl:283: :observer_app_wx.handle_info/2
    wx_object.erl:432: :wx_object.handle_msg/5
    (stdlib) proc_lib.erl:240: :proc_lib.init_p_do_apply/3
Last message: {:EXIT, #PID<0.67.0>, {{:badmatch, {:badrpc, :nodedown}}, [{:observer_app_wx, :handle_info, 2, [file: 'observer_app_wx.erl', line: 283]}, {:wx_object, :handle_msg, 5, [file: 'wx_object.erl', line: 432]}, {:proc_lib, :init_p_do_apply, 3, [file: 'proc_lib.erl', line: 240]}]}}
State: {:state, #PID<0.67.0>, [], 20507, [#PID<0.67.0>]}

然后,我选择了rumbl节点,所有的应用程序都被列出了

Observer默认情况下显示与Observer在同一节点上运行的应用程序。通过使用
elixir-S…
启动服务器,然后在一个新的
iex中运行
:observer.start
,您将生成2个节点

您可以通过为该节点指定一个
--name
(或
--sname
)来查看另一个节点的数据:


然后从Observer的“节点”菜单中选择该节点。

我将接受答案,但请在名称旁边设置cookie,谢谢
elixir --sname rumbl --cookie secret_token -S mix phoenix.server
elixir --name rumbl -S mix phoenix.server