Вы можете использовать Supervisor.which_children/1:
iex> Supervisor.which_children(MyApp.Supervisor)
[{MyApp.SubSupervisor, #PID<0.1695.0>, :supervisor, [MyApp.SubSupervisor]},
{MyApp.Endpoint, #PID<0.1686.0>, :supervisor, [MyApp.Endpoint]}]
Эта функция возвращает список кортежей, содержащих:
идентификатор - как это определено в спецификации дочернего или не определено в случае simple_one_for_one руководителя
child - pid соответствующего дочернего процесса, атом: перезапуск, если процесс вот-вот должен быть перезапущен, или: undefined, если такого процесса нет
тип -: работник или: руководитель, как это определено в спецификации дочернего
модули - как это определено в детской спецификации
С type
и pid
предоставляются вы можете рекурсивно принести детям, чтобы генерировать список всех сообщений, если требуется.
В будущем ссылка на модуль модуля Elixir Supervisor приведена здесь: http://elixir-lang.org/docs/stable/elixir/Supervisor.html –