[erlang-questions] Autogenerating node names

Per Hedeland per@REDACTED
Fri Dec 12 00:24:18 CET 2008


David Sveningsson <ext@REDACTED> wrote:
>
>Thanks, but I was hoping to be able to skip the timer part. Does anyone
>know when epmd forks? Before or after its initialization?
>
>Let me rephrase that, is epmd ready when "epmd -daemon" returns or must
>one wait an unspecified time while it is starting?

I'd rephrase it as a suggestion, because it's a very nice way to
start up a daemon, but epmd doesn't do that - it forks first
(read the source:-). You can use erl_epmd:names/0 to check on
its presence/readiness though, e.g. something like this:

start_epmd() ->
    start_epmd(0, 10).

start_epmd(N, N) ->
    {error, too_many_tries};
start_epmd(M, N) ->
    case erl_epmd:names() of
	{ok, _} ->
	    ok;
	_ when M == 0 ->
	    os:cmd("epmd -daemon"),
	    start_epmd(M+1, N);
	_ ->
	    timer:sleep(1),
	    start_epmd(M+1, N)
    end.

Adjust "10" and "1" to taste, when I tried it I never managed to
get to the sleep...

--Per Hedeland




More information about the erlang-questions mailing list