Cannot spawn an erlang supervisor from the shell.

Posted by drfloob on Stack Overflow See other posts from Stack Overflow or by drfloob
Published on 2010-05-07T01:49:19Z Indexed on 2010/05/07 1:58 UTC
Read the original article Hit count: 380

Filed under:
|
|

I've implemented a gen_server and supervisor: test_server and test_sup. I want to test them from the shell/CLI. I've written their start_link functions such that their names are registered locally.

I've found that I can spawn the test_server from the command line just fine, but a spawned test_sup does nothing whatsoever. Why is this?

For example, I can spawn a test_server by executing:

1> spawn(test_server, start_link, []).
<0.39.0>
2> registered().
[...,test_server,...]

I can interact with the server, and everything appears fine.

However, if I try to do the same thing with test_sup, no new names/Pids are registered, and it looks like my test_server was not spawned at all.

I'd assume I coded an error in my supervisor, but this method of starting my supervisor works perfectly fine:

1> {ok, Pid}= test_sup:start_link([]).
{ok, <0.39.0>}
2> unlink(Pid).
true
3> registered().
[...,test_server,test_sup,...]

Why is it that I can spawn a gen_server but not a supervisor?

© Stack Overflow or respective owner

Related posts about erlang

Related posts about otp