主管:start_child与rest_for_one

时间:2013-11-08 14:04:47

标签: erlang supervisor

如果主管使用rest_for_one重新启动策略,并且使用supervisor:start_child将子项添加到其中,新孩子是否被认为是现有孩子的“之前”或“之后”?

或换句话说,如果现有的孩子为A且新孩子为BB会在A死亡时死亡,或A如果B死了会死吗?我假设前者,但文档没有明确说明它。

1 个答案:

答案 0 :(得分:1)

来自Erlang Documentation

rest_for_one - if one child process terminates and should be 
 restarted, the 'rest' of the child processes -- i.e. the child processes after 
 the terminated child process in the start order -- are terminated. Then the 
 terminated child process and all child processes after it are restarted.

因此,如果你添加一个孩子,如果任何现有孩子死亡,但是新孩子不能杀死任何其他现有孩子,它将重新开始,这里的顺序是开始顺序。