【发布时间】:2010-10-27 14:18:38
【问题描述】:
我有一个分布在 2 个节点上的应用程序。当我停止()第一个节点时,故障转移工作完美,但是(有时?)当我重新启动第一个节点时,接管失败并且应用程序崩溃,因为 start_link 返回已经启动。
SUPERVISOR REPORT <0.60.0> 2009-05-20 12:12:01
===============================================================================
Reporting supervisor {local,twitter_server_supervisor}
Child process
errorContext start_error
reason {already_started,<2415.62.0>}
pid undefined
name tag1
start_function {twitter_server,start_link,[]}
restart_type permanent
shutdown 10000
child_type worker
ok
我的应用
start(_Type, Args)->
twitter_server_supervisor:start_link( Args ).
stop( _State )->
ok.
我的主管:
start_link( Args ) ->
supervisor:start_link( {local,?MODULE}, ?MODULE, Args ).
两个节点都使用相同的 sys.config 文件。
我对这个过程有什么不明白上述不应该起作用的?
【问题讨论】:
-
我能问你从哪里得到格式如此精美的 sasl 主管报告吗?它比默认值更具可读性。你能分享它的链接或它的来源吗?
-
这是我在带有 erl_12B 的 windows 框中使用 rb:show(N) 得到的标准结果。我看到的唯一其他变化是,如果您通过 rpc 进行调用,那么输出中会充斥着节点名称?你在看什么?
标签: erlang erlang-otp