1epmd(1)                          User Commands                         epmd(1)
2
3
4

NAME

6       epmd - Erlang Port Mapper Daemon
7

DESCRIPTION

9         epmd [-d|-debug] [DbgExtra...] [-address Addresses] [-port No] [-dae‐
10         mon] [-relaxed_command_check]:
11           Starts the port mapper daemon.
12
13         epmd [-d|-debug] [-port No] [-names|-kill|-stop Name]:
14           Communicates with a running port mapper daemon.
15
16       This daemon acts as a name server on all hosts involved in  distributed
17       Erlang  computations.  When  an Erlang node starts, the node has a name
18       and it obtains an address from the host OS kernel. The name and address
19       are  sent  to  the  epmd  daemon running on the local host. In a TCP/IP
20       environment, the address consists of the IP address and a port  number.
21       The  node name is an atom on the form of Name@Node. The job of the epmd
22       daemon is to keep track of which node name listens  on  which  address.
23       Hence, epmd maps symbolic node names to machine addresses.
24
25       The  TCP/IP epmd daemon only keeps track of the Name (first) part of an
26       Erlang node name. The Host part (whatever is after the @)  is  implicit
27       in  the  node  name  where  the epmd daemon was contacted, as is the IP
28       address where the Erlang node can be reached.  Consistent  and  correct
29       TCP  naming  services  are  therefore required for an Erlang network to
30       function correctly.
31
32   Note:
33       On Windows the maximum number of nodes allowed in one epmd instance  is
34       60.  This  is  because of limitations in the current implementation. If
35       you need more nodes, you should look into using and erlang  based  epmd
36       implementation such as Erlang EPMD.
37
38
39         Starting the port mapper daemon:
40           The  daemon  is started automatically by command erl(1) if the node
41           is to be distributed and no running instance is present.  If  auto‐
42           matically launched environment variables must be used to change the
43           behavior of the daemon; see section Environment Variables.
44
45           If argument -daemon is not specified, epmd runs as a normal program
46           with  the controlling terminal of the shell in which it is started.
47           Normally, it is to be run as a daemon.
48
49           Regular startup options are described in section Regular Options.
50
51           The DbgExtra options are described in section DbgExtra Options.
52
53         Communicating with a running port mapper daemon:
54           Communicating with the running epmd daemon by the epmd  program  is
55           done primarily for debugging purposes.
56
57           The different queries are described in section Interactive options.
58

REGULAR OPTIONS

60       These  options  are  available  when starting the name server. The name
61       server is normally started automatically  by  command  erl(1)  (if  not
62       already available), but it can also be started at system startup.
63
64         -address List:
65           Lets  this instance of epmd listen only on the comma-separated list
66           of IP addresses and on the loopback address  (which  is  implicitly
67           added  to  the list if it has not been specified). This can also be
68           set using environment variable ERL_EPMD_ADDRESS; see section  Envi‐
69           ronment Variables.
70
71         -port No:
72           Lets  this instance of epmd listen to another TCP port than default
73           4369.  This  can   also   be   set   using   environment   variable
74           ERL_EPMD_PORT; see section Environment Variables.
75
76         -d | -debug:
77           Enables  debug  output. The more -d flags specified, the more debug
78           output you will get (to a certain limit). This option is most  use‐
79           ful when the epmd daemon is not started as a daemon.
80
81         -daemon:
82           Starts epmd detached from the controlling terminal. Logging ends up
83           in syslog when available and correctly configured. If the epmd dae‐
84           mon is started at boot, this option is definitely to be used. It is
85           also used when command erl automatically starts epmd.
86
87         -relaxed_command_check:
88           Starts the epmd program with relaxed command checking  (mostly  for
89           backward compatibility). This affects the following:
90
91           * With relaxed command checking, the epmd daemon can be killed from
92             the local host with, for example,  command  epmd  -kill  even  if
93             active  nodes are registered. Normally only daemons with an empty
94             node database can be killed with epmd -kill.
95
96           * Command epmd -stop (and the corresponding messages  to  epmd,  as
97             can  be  specified  using erl_interface:ei(3)) is normally always
98             ignored. This because it can cause a strange situation where  two
99             nodes  of  the  same  name  can be alive at the same time. A node
100             unregisters itself by only closing the connection to epmd,  which
101             is why command stop was only intended for use in debugging situa‐
102             tions.
103
104             With relaxed command checking enabled, you can forcibly  unregis‐
105             ter live nodes.
106
107           Relaxed command checking can also be enabled by setting environment
108           variable ERL_EPMD_RELAXED_COMMAND_CHECK before starting epmd.
109
110           Use relaxed command checking only  on  systems  with  very  limited
111           interactive usage.
112

DBGEXTRA OPTIONS

114   Note:
115       These options are only for debugging and testing epmd clients. They are
116       not to be used in normal operation.
117
118
119         -packet_timeout Seconds:
120           Sets the number of seconds a connection can be inactive before epmd
121           times out and closes the connection. Defaults to 60.
122
123         -delay_accept Seconds:
124           To simulate a busy server, you can insert a delay between when epmd
125           gets notified that a new connection is requested and when the  con‐
126           nection gets accepted.
127
128         -delay_write Seconds:
129           Also  a simulation of a busy server. Inserts a delay before a reply
130           is sent.
131

INTERACTIVE OPTIONS

133       These options make epmd run as an interactive command,  displaying  the
134       results  of sending queries to an already running instance of epmd. The
135       epmd contacted is always on the local node, but  option  -port  can  be
136       used to select between instances if several are running using different
137       ports on the host.
138
139         -port No:
140           Contacts the epmd  listening  on  the  specified  TCP  port  number
141           (default  4369).  This  can  also be set using environment variable
142           ERL_EPMD_PORT; see section Environment Variables.
143
144         -names:
145           Lists names registered with the currently running epmd.
146
147         -kill:
148           Kills the currently running epmd.
149
150           Killing the running epmd is only allowed if epmd  -names  shows  an
151           empty  database or if -relaxed_command_check was specified when the
152           running instance of epmd was started.
153
154           Notice that -relaxed_command_check is specified when  starting  the
155           daemon that is to accept killing when it has live nodes registered.
156           When running  epmd  interactively,  -relaxed_command_check  has  no
157           effect.  A  daemon that is started without relaxed command checking
158           must be killed using, for example, signals or  some  other  OS-spe‐
159           cific method if it has active clients registered.
160
161         -stop Name:
162           Forcibly unregisters a live node from the epmd database.
163
164           This  command  can  only  be  used  when  contacting epmd instances
165           started with flag -relaxed_command_check.
166
167           Notice that relaxed command checking must enabled for the epmd dae‐
168           mon  contacted.  When  running  epmd  interactively,  -relaxed_com‐
169           mand_check has no effect.
170

ENVIRONMENT VARIABLES

172         ERL_EPMD_ADDRESS:
173           Can be set to a comma-separated list of IP addresses, in which case
174           the  epmd  daemon will listen only on the specified address(es) and
175           on the loopback address (which is implicitly added to the  list  if
176           it  has  not  been specified). The default behavior is to listen on
177           all available IP addresses.
178
179         ERL_EPMD_PORT:
180           Can contain the port number epmd will use. The  default  port  will
181           work fine in most cases. A different port can be specified to allow
182           several instances of epmd,  representing  independent  clusters  of
183           nodes,  to  co-exist  on the same host. All nodes in a cluster must
184           use the same epmd port number.
185
186         ERL_EPMD_RELAXED_COMMAND_CHECK:
187           If  set  before  start,  the  epmd  daemon  behaves  as  if  option
188           -relaxed_command_check  was  specified at startup. Consequently, if
189           this option is set before starting the Erlang virtual machine,  the
190           automatically  started  epmd  accepts  the -kill and -stop commands
191           without restrictions.
192

LOGGING

194       On some operating systems syslog will be used for error reporting  when
195       epmd  runs  as a daemon. To enable the error logging, you must edit the
196       /etc/syslog.conf file and add an entry:
197
198         !epmd
199         *.*<TABs>/var/log/epmd.log
200
201
202       where <TABs> are at least one real tab character. Spaces  are  silently
203       ignored.
204

ACCESS RESTRICTIONS

206       The  epmd  daemon  accepts messages from both the local host and remote
207       hosts. However, only the query commands are answered (and  acted  upon)
208       if  the query comes from a remote host. It is always an error to try to
209       register a node name if the client is not a process on the same host as
210       the  epmd  instance is running on. Such requests are considered hostile
211       and the connection is closed immediately.
212
213       The following queries are accepted from remote nodes:
214
215         * Port queries, that is, on which port the node with a specified name
216           listens
217
218         * Name  listing, that is, gives a list of all names registered on the
219           host
220
221       To restrict access further, firewall software must be used.
222
223
224
225Ericsson AB                       erts 10.7.1                          epmd(1)
Impressum