simple_one_for_one start_child()返回already_started

dij*_*tra 8 erlang erlang-otp simple-one-for-one erlang-supervisor

我有一个应该启动simple_one_for_one工人的主管.当我start_child()第一次打电话时,一切都很顺利.但是,当我第二次这样做时,我明白了{error,{already_started,<0.71.0>}}.为什么simple_one_for_one主管会给我一个回报already_started?我错过了什么?

这是代码:主管,工人.

小智 16

您正在为gen_server注册(本地)名称.一旦你开始一个,你就无法启动另一个同名的人.

如果你使用gen_server:start_link/3代替,从你当前的gen_server:start_link/4调用中删除第一个参数,你应该可以启动多个.