[erlang-questions] Pass Name to Dynamic Supervisors

tom kelly ttom.kelly@REDACTED
Thu Sep 8 10:56:14 CEST 2011

Hi Chris,

We do something like this in our application.

First, in our "static" supervision tree we start a dynamic supervisor:

init(Args) ->
    {ok, {
           {one_for_one, 5, 5},
          {dynamic_supervisor, start_link, [Args]},

Where the dynamic_supervisor module has the functions:

start_link(Args) ->
    supervisor:start_link({local,?MODULE}, ?MODULE, [Args]).

init(_Args) ->
    {ok, {
           {one_for_one, 5, 5},

Then in our code we can dynamically start supervised processes with
registered names, ProcName:

                     {gen_server, start_link,
                      [{local, ProcName}, ?MODULE, [StartArgs], []]},

And shut them down with:


This is just a few clippings from our code base here with the names made
more generic, so there might be a syntax error or two but I think it helps
do what you want.


On Thu, Sep 8, 2011 at 3:09 AM, Christopher Wilson <wilsoncj1@REDACTED>wrote:

> Is there a way to pass a name/ID into the call to supervisor:start_child,
> more specifically to init()?  I'd like to specify the name of the worker or
> supervisor such that when I ran supervisor:which_children I could identify
> what's what.
> Also, I've tried [unsuccessfully] to dynamically create a child spec and
> add pass that in.  Are there any decent examples out there on how to do this
> outside of the man pages?
> Thank you.
> -Chris
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20110908/c083036e/attachment.htm>

More information about the erlang-questions mailing list