子を作成するスーパーバイザを作成します (たとえば、ポートでリッスンするプロセス)。スーパーバイザーの PID を子に渡したいSupPid
ので、他の子を動的に開始できますsupervisor:start_child()
(たとえば、接続が受信されたとき)。スーパーバイザ内からスーパーバイザの PID を取得する方法は?
-module(the_supervisor)
start_link() ->
supervisor:start_link({local, ?MODULE}, ?MODULE, []).
init([]) ->
SupPid = get_my_own_pid(), % <-- get pid of the supervisor and pass it later
ChildSpec = ?CHILD_WITH_ARGS(some_children, worker, [SupPid]),
{ok, {{one_for_one, 5, 10},
[ChildSpec]} }.
関連している