Elixir 该应用程序未在observer中列出
虽然phenix服务器正常启动,但我无法在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
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