2012-04-25 17 views
1

私はこのようなmy_sup.erlで機能を持っている:Erlangで関数呼び出しをトレースする方法は?

init([ems_media_sup]) -> 
    {ok, {{simple_one_for_one, ?MAX_RESTART, ?MAX_TIME}, [ 
    {ems_media_sup, {ems_media, start_link, []}, temporary, 2000, worker, [ems_media]}] 
}}; 

しかしems_media.erlにはSTART_LINK/1という名前の機能がない、私は

supervisor:start_link(?MODULE, [ems_media_sup]) 
を実行してエラーがない理由を知りたいです

ので、コールのinit([ems_media_sup])my_supはタイプsimple_one_for_oneであるためだ

答えて

3

後の次の何が起こったかを知る方法 - ので、明示的にによってそうするように求められたとき、それが唯一の子プロセスを開始します。

スーパーバイザは他のタイプ(one_for_oneone_for_allまたはrest_for_one)であった場合は、起動時に子仕様のすべての子供たちを開始しようとしているだろうが、simple_one_for_one監督のみによって異なる子どもの多くを作成するためのものですそれらの引数リストの場合、その場合、init関数の子指定はテンプレートの役割しか果たしません。

+0

良い答え私は、後でそれに潜入すると思います – why

関連する問題