epmd(1)


NAME

   epmd - Erlang Port Mapper Daemon

DESCRIPTION

     epmd   [-d|-debug]  [DbgExtra...]  [-address  Addresses]  [-port  No]
     [-daemon] [-relaxed_command_check]:
       Starts the port mapper daemon.

     epmd [-d|-debug] [-port No] [-names|-kill|-stop Name]:
       Communicates with a running port mapper daemon.

   This daemon acts as a name server on all hosts involved in  distributed
   Erlang  computations.  When  an Erlang node starts, the node has a name
   and it obtains an address from the host OS kernel. The name and address
   are  sent  to  the  epmd  daemon running on the local host. In a TCP/IP
   environment, the address consists of the IP address and a port  number.
   The  node name is an atom on the form of Name@Node. The job of the epmd
   daemon is to keep track of which node name listens  on  which  address.
   Hence, epmd maps symbolic node names to machine addresses.

   The  TCP/IP epmd daemon only keeps track of the Name (first) part of an
   Erlang node name. The Host part (whatever is after the @)  is  implicit
   in  the  node  name  where  the epmd daemon was contacted, as is the IP
   address where the Erlang node can be reached.  Consistent  and  correct
   TCP  naming  services  are  therefore required for an Erlang network to
   function correctly.

     Starting the port mapper daemon:
       The daemon is started automatically by command erl(1) if  the  node
       is  to  be  distributed  and  no  running  instance  is present. If
       automatically launched environment variables must be used to change
       the behavior of the daemon; see section Environment Variables.

       If argument -daemon is not specified, epmd runs as a normal program
       with the controlling terminal of the shell in which it is  started.
       Normally, it is to be run as a daemon.

       Regular startup options are described in section Regular Options.

       The DbgExtra options are described in section DbgExtra Options.

     Communicating with a running port mapper daemon:
       Communicating  with  the running epmd daemon by the epmd program is
       done primarily for debugging purposes.

       The different queries are described in section Interactive options.

REGULAR OPTIONS

   These options are available when starting the  name  server.  The  name
   server  is  normally  started  automatically  by command erl(1) (if not
   already available), but it can also be started at system startup.

     -address List:
       Lets this instance of epmd listen only on the comma-separated  list
       of  IP  addresses  and on the loopback address (which is implicitly
       added to the list if it has not been specified). This can  also  be
       set   using  environment  variable  ERL_EPMD_ADDRESS;  see  section
       Environment Variables.

     -port No:
       Lets this instance of epmd listen to another TCP port than  default
       4369.   This   can   also   be   set   using  environment  variable
       ERL_EPMD_PORT; see section Environment Variables.

     -d | -debug:
       Enables debug output. The more -d flags specified, the  more  debug
       output  you  will  get  (to  a  certain limit). This option is most
       useful when the epmd daemon is not started as a daemon.

     -daemon:
       Starts epmd detached from the controlling terminal. Logging ends up
       in  syslog  when  available  and  correctly configured. If the epmd
       daemon is started at boot, this option is definitely to be used. It
       is also used when command erl automatically starts epmd.

     -relaxed_command_check:
       Starts  the  epmd program with relaxed command checking (mostly for
       backward compatibility). This affects the following:

       * With relaxed command checking, the epmd daemon can be killed from
         the  local  host  with,  for  example, command epmd -kill even if
         active nodes are registered. Normally only daemons with an  empty
         node database can be killed with epmd -kill.

       * Command  epmd  -stop  (and the corresponding messages to epmd, as
         can be specified using erl_interface:ei(3erl)) is normally always
         ignored.  This because it can cause a strange situation where two
         nodes of the same name can be alive at  the  same  time.  A  node
         unregisters  itself by only closing the connection to epmd, which
         is why command stop  was  only  intended  for  use  in  debugging
         situations.

         With   relaxed   command   checking  enabled,  you  can  forcibly
         unregister live nodes.

       Relaxed command checking can also be enabled by setting environment
       variable ERL_EPMD_RELAXED_COMMAND_CHECK before starting epmd.

       Use  relaxed  command  checking  only  on systems with very limited
       interactive usage.

DBGEXTRA OPTIONS

   Note:
   These options are only for debugging and testing epmd clients. They are
   not to be used in normal operation.

     -packet_timeout Seconds:
       Sets the number of seconds a connection can be inactive before epmd
       times out and closes the connection. Defaults to 60.

     -delay_accept Seconds:
       To simulate a busy server, you can insert a delay between when epmd
       gets  notified  that  a  new  connection  is requested and when the
       connection gets accepted.

     -delay_write Seconds:
       Also a simulation of a busy server. Inserts a delay before a  reply
       is sent.

INTERACTIVE OPTIONS

   These  options  make epmd run as an interactive command, displaying the
   results of sending queries to an already running instance of epmd.  The
   epmd  contacted  is  always  on the local node, but option -port can be
   used to select between instances if several are running using different
   ports on the host.

     -port No:
       Contacts  the  epmd  listening  on  the  specified  TCP port number
       (default 4369). This can also be  set  using  environment  variable
       ERL_EPMD_PORT; see section Environment Variables.

     -names:
       Lists names registered with the currently running epmd.

     -kill:
       Kills the currently running epmd.

       Killing  the  running  epmd is only allowed if epmd -names shows an
       empty database or if -relaxed_command_check was specified when  the
       running instance of epmd was started.

       Notice  that  -relaxed_command_check is specified when starting the
       daemon that is to accept killing when it has live nodes registered.
       When  running  epmd  interactively,  -relaxed_command_check  has no
       effect. A daemon that is started without relaxed  command  checking
       must  be  killed  using,  for  example,  signals  or some other OS-
       specific method if it has active clients registered.

     -stop Name:
       Forcibly unregisters a live node from the epmd database.

       This command can  only  be  used  when  contacting  epmd  instances
       started with flag -relaxed_command_check.

       Notice  that  relaxed  command  checking  must enabled for the epmd
       daemon    contacted.    When    running     epmd     interactively,
       -relaxed_command_check has no effect.

ENVIRONMENT VARIABLES

     ERL_EPMD_ADDRESS:
       Can be set to a comma-separated list of IP addresses, in which case
       the epmd daemon will listen only on the specified  address(es)  and
       on  the  loopback address (which is implicitly added to the list if
       it has not been specified). The default behavior is  to  listen  on
       all available IP addresses.

     ERL_EPMD_PORT:
       Can  contain  the  port number epmd will use. The default port will
       work fine in most cases. A different port can be specified to allow
       several  instances  of  epmd,  representing independent clusters of
       nodes, to co-exist on the same host. All nodes in  a  cluster  must
       use the same epmd port number.

     ERL_EPMD_RELAXED_COMMAND_CHECK:
       If  set  before  start,  the  epmd  daemon  behaves  as  if  option
       -relaxed_command_check was specified at startup.  Consequently,  if
       this  option is set before starting the Erlang virtual machine, the
       automatically started epmd accepts the  -kill  and  -stop  commands
       without restrictions.

LOGGING

   On  some operating systems syslog will be used for error reporting when
   epmd runs as a daemon. To enable the error logging, you must  edit  the
   /etc/syslog.conf file and add an entry:

     !epmd
     *.*<TABs>/var/log/epmd.log

   where  <TABs>  are at least one real tab character. Spaces are silently
   ignored.

ACCESS RESTRICTIONS

   The epmd daemon accepts messages from both the local  host  and  remote
   hosts.  However,  only the query commands are answered (and acted upon)
   if the query comes from a remote host. It is always an error to try  to
   register a node name if the client is not a process on the same host as
   the epmd instance is running on. Such requests are  considered  hostile
   and the connection is closed immediately.

   The following queries are accepted from remote nodes:

     * Port queries, that is, on which port the node with a specified name
       listens

     * Name listing, that is, gives a list of all names registered on  the
       host

   To restrict access further, firewall software must be used.





Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.





Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.


Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.





Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.


Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.





Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.


Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.