simple_one_for_one start_child()返回already_started

时间:2011-07-23 06:19:52

标签: erlang otp supervisor simple-one-for-one

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

以下是代码:supervisorworker

1 个答案:

答案 0 :(得分:15)

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

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