Search code examples
macosshellerlangerl

Getting two erl shells to talk on OS X


I want to be able to have two Erlang shells to talk. I'm running on OS X.

I tried the tut17 example here.

I've also tried:

$ erl -sname foo

and then in a new Terminal:

$ erl -sname bar

(bar@elife)1> net_adm:ping(foo@elife).
pang

Any ideas?


Solution

  • It's kind of broken on the mac. By default, the mac can't resolve its own shortname. Your host's name is really probably "elife.local".

    If you start erl with -name FQDN, then the pings will work.

    ie: you would start it with

    $ erl -name [email protected]
    

    this probably could be fixed by making the mac capable of resolving it's own short name

    Here's example output from my mac. When I do -sname I get the same result as you.

    The first node:

    $ erl -name [email protected]
    Erlang R13B03 (erts-5.7.4) [source] [smp:2:2] [rq:2] [async-threads:0] [kernel-poll:false]
    
    Eshell V5.7.4  (abort with ^G)
    ([email protected])1> 
    

    The other node:

    $ erl -name [email protected]
    Erlang R13B03 (erts-5.7.4) [source] [smp:2:2] [rq:2] [async-threads:0] [kernel-poll:false]
    
    Eshell V5.7.4  (abort with ^G)
    ([email protected])1> net_adm:ping('[email protected]').
    pong