Naming a Process

The idea of referencing processes by their PID gets old quickly. Fortunately, there are a number of alternatives.

The simplest is local naming. We assign a name that is unique for all OTP processes on our server, and then we use that name instead of the PID whenever we reference it. To create a locally named process, we use the name: option when we start the server:

*
iex>​ { :ok, pid } = GenServer.start_link(Sequence.Server, 100, name: :seq)
 
{:ok,​#PID<0.58.0>}​​​
 
iex>​ GenServer.call(:seq, :next_number)
 
100​​
 
iex>​ GenServer.call(:seq, :next_number)
 
101​​
 
iex>​ :sys.get_status :seq
 
{:status, ​#PID<0.69.0>, {:module, :gen_server},
 
[[​"$ancestors"​: [​#PID<0.58.0>],
 
"$initial_call"​: {Sequence.Server, :init, ...

Get Programming Elixir now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.