[erlang-questions] starting of two instances of server

Magnus Henoch magnus@REDACTED
Fri May 22 20:09:48 CEST 2009

"info" <info@REDACTED> writes:

> init()->
> Spec1= {id1, generic, start_link, [par1_1,par2_1],permanent,
> brutal_kill,worker, [generic]},
> Spec2= {id2, generic, start_link, [par1_2,par2_2],permanent,
> brutal_kill,worker, [generic]},

The module, function and argument terms should be embedded in a tuple:

Spec1= {id1, {generic, start_link, [par1_1,par2_1]},permanent,
        brutal_kill,worker, [generic]},
Spec2= {id2, {generic, start_link, [par1_2,par2_2]},permanent,
        brutal_kill,worker, [generic]},

> Childs= [Spec1,Spec2],
> case supervisor:check_childspecs(Childs) of
> {ok} ->

That should be "ok" instead of "{ok}" - see the documentation of
check_childspecs at http://erlang.org/doc/man/supervisor.html .

>     SChilds={{one_for_one,2,10},Childs),
>     {ok,SChilds};
> {error,Reason} ->
>     io:format("Error: ~s~n", [Reason]),

And that should be "~p" instead of "~s", since Reason will not be a
string, but any term.

I can't really explain the error message you get, though - it seems you
get _both_ a badarg for the format string _and_ a case_clause for the
{ok}, but that doesn't make sense.  (Most likely I'm misreading

Magnus Henoch, magnus@REDACTED
Erlang Training and Consulting

More information about the erlang-questions mailing list