Posts

Showing posts from March, 2018

Erlang slave nodes and ssh login shells

The Erlang runtime environment is more similar to an operating system than to a traditional language runtime library. An Erlang "node" is an Erlang instance started with the flag -name (or -sname, for "short names" if your network does not rely on DNS). For example: $ erl -sname foo will give you an interactive Erlang shell with a prompt like this: Eshell V9.2.1 (abort with ^G) (foo@rocka)1> and you can see from the prompt that this is running as a "node" with the node name foo@rocka . In practice, this means that networking is enabled, allowing Erlang processes on this node to communicate with processes on other nodes, either on the same host machine or on other machines, through the ordinary Erlang message passing mechanism. Working with multiple nodes If I open a separate console and start another node  bar@rocka  in the same way, I can then connect these two and start doing interesting multi-node stuff: (foo@rocka)1> net_adm:ping(ba