Erlang -- erl_epmd

Kernel

Reference Manual

Version 6.5.1

- User's Guide
- Reference Manual
- Release Notes
- PDF
- Top

- Expand All
- Contract All

### Table of Contents

- kernel (App)
- app
- application
  - Top of manual page
  - ensure_all_started/1
  - ensure_all_started/2
  - ensure_started/1
  - ensure_started/2
  - get_all_env/0
  - get_all_env/1
  - get_all_key/0
  - get_all_key/1
  - get_application/0
  - get_application/1
  - get_env/1
  - get_env/2
  - get_env/3
  - get_key/1
  - get_key/2
  - load/1
  - load/2
  - loaded_applications/0
  - permit/2
  - set_env/1
  - set_env/2
  - set_env/3
  - set_env/4
  - start/1
  - start/2
  - start_type/0
  - stop/1
  - takeover/2
  - unload/1
  - unset_env/2
  - unset_env/3
  - which_applications/0
  - which_applications/1
  - Module:config_change/3
  - Module:prep_stop/1
  - Module:start/2
  - Module:start_phase/3
  - Module:stop/1
- auth
  - Top of manual page
  - cookie/0
  - cookie/1
  - is_auth/1
  - node_cookie/1
  - node_cookie/2
- code
  - Top of manual page
  - add_path/1
  - add_patha/1
  - add_paths/1
  - add_pathsa/1
  - add_pathsz/1
  - add_pathz/1
  - all_loaded/0
  - atomic_load/1
  - clash/0
  - compiler_dir/0
  - del_path/1
  - delete/1
  - ensure_loaded/1
  - ensure_modules_loaded/1
  - finish_loading/1
  - get_mode/0
  - get_object_code/1
  - get_path/0
  - is_loaded/1
  - is_module_native/1
  - is_sticky/1
  - lib_dir/0
  - lib_dir/1
  - lib_dir/2
  - load_abs/1
  - load_binary/3
  - load_file/1
  - modified_modules/0
  - module_status/1
  - objfile_extension/0
  - prepare_loading/1
  - priv_dir/1
  - purge/1
  - replace_path/2
  - root_dir/0
  - set_path/1
  - soft_purge/1
  - stick_dir/1
  - unstick_dir/1
  - where_is_file/1
  - which/1
- config
- disk_log
  - Top of manual page
  - accessible_logs/0
  - alog/2
  - alog_terms/2
  - balog/2
  - balog_terms/2
  - bchunk/2
  - bchunk/3
  - block/1
  - block/2
  - blog/2
  - blog_terms/2
  - breopen/3
  - btruncate/2
  - change_header/2
  - change_notify/3
  - change_size/2
  - chunk/2
  - chunk/3
  - chunk_info/1
  - chunk_step/3
  - close/1
  - format_error/1
  - inc_wrap_file/1
  - info/1
  - lclose/1
  - lclose/2
  - log/2
  - log_terms/2
  - open/1
  - pid2name/1
  - reopen/2
  - reopen/3
  - sync/1
  - truncate/1
  - truncate/2
  - unblock/1
- erl_boot_server
  - Top of manual page
  - add_slave/1
  - delete_slave/1
  - start/1
  - start_link/1
  - which_slaves/0
- erl_ddll
  - Top of manual page
  - demonitor/1
  - format_error/1
  - info/0
  - info/1
  - info/2
  - load/2
  - load_driver/2
  - loaded_drivers/0
  - monitor/2
  - reload/2
  - reload_driver/2
  - try_load/3
  - try_unload/2
  - unload/1
  - unload_driver/1
- erl_epmd
  - Top of manual page
  - address_please/3
  - names/1
  - port_please/2
  - port_please/3
  - register_node/2
  - register_node/3
  - start_link/0
- erl_prim_loader
- erlang
- error_handler
  - Top of manual page
  - raise_undef_exception/3
  - undefined_function/3
  - undefined_lambda/3
- error_logger
  - Top of manual page
  - add_report_handler/1
  - add_report_handler/2
  - delete_report_handler/1
  - error_msg/1
  - error_msg/2
  - error_report/1
  - error_report/2
  - format/2
  - get_format_depth/0
  - info_msg/1
  - info_msg/2
  - info_report/1
  - info_report/2
  - logfile/1
  - tty/1
  - warning_map/0
  - warning_msg/1
  - warning_msg/2
  - warning_report/1
  - warning_report/2
- file
  - Top of manual page
  - advise/4
  - allocate/3
  - change_group/2
  - change_mode/2
  - change_owner/2
  - change_owner/3
  - change_time/2
  - change_time/3
  - close/1
  - consult/1
  - copy/2
  - copy/3
  - datasync/1
  - del_dir/1
  - delete/1
  - eval/1
  - eval/2
  - format_error/1
  - get_cwd/0
  - get_cwd/1
  - list_dir/1
  - list_dir_all/1
  - make_dir/1
  - make_link/2
  - make_symlink/2
  - native_name_encoding/0
  - open/2
  - path_consult/2
  - path_eval/2
  - path_open/3
  - path_script/2
  - path_script/3
  - pid2name/1
  - position/2
  - pread/2
  - pread/3
  - pwrite/2
  - pwrite/3
  - read/2
  - read_file/1
  - read_file_info/1
  - read_file_info/2
  - read_line/1
  - read_link/1
  - read_link_all/1
  - read_link_info/1
  - read_link_info/2
  - rename/2
  - script/1
  - script/2
  - sendfile/2
  - sendfile/5
  - set_cwd/1
  - sync/1
  - truncate/1
  - write/2
  - write_file/2
  - write_file/3
  - write_file_info/2
  - write_file_info/3
- gen_sctp
  - Top of manual page
  - abort/2
  - close/1
  - connect/4
  - connect/5
  - connect_init/4
  - connect_init/5
  - controlling_process/2
  - eof/2
  - error_string/1
  - listen/2
  - open/0
  - open/1
  - open/2
  - peeloff/2
  - recv/1
  - recv/2
  - send/3
  - send/4
- gen_tcp
  - Top of manual page
  - accept/1
  - accept/2
  - close/1
  - connect/3
  - connect/4
  - controlling_process/2
  - listen/2
  - recv/2
  - recv/3
  - send/2
  - shutdown/2
- gen_udp
  - Top of manual page
  - close/1
  - controlling_process/2
  - open/1
  - open/2
  - recv/2
  - recv/3
  - send/3
  - send/4
  - send/5
- global
  - Top of manual page
  - del_lock/1
  - del_lock/2
  - notify_all_name/3
  - random_exit_name/3
  - random_notify_name/3
  - re_register_name/2
  - re_register_name/3
  - register_name/2
  - register_name/3
  - registered_names/0
  - send/2
  - set_lock/1
  - set_lock/2
  - set_lock/3
  - sync/0
  - trans/2
  - trans/3
  - trans/4
  - unregister_name/1
  - whereis_name/1
- global_group
  - Top of manual page
  - global_groups/0
  - info/0
  - monitor_nodes/1
  - own_nodes/0
  - registered_names/1
  - send/2
  - send/3
  - sync/0
  - whereis_name/1
  - whereis_name/2
- heart
  - Top of manual page
  - clear_callback/0
  - clear_cmd/0
  - get_callback/0
  - get_cmd/0
  - get_options/0
  - set_callback/2
  - set_cmd/1
  - set_options/1
- inet
  - Top of manual page
  - close/1
  - format_error/1
  - get_rc/0
  - getaddr/2
  - getaddrs/2
  - gethostbyaddr/1
  - gethostbyname/1
  - gethostbyname/2
  - gethostname/0
  - getifaddrs/0
  - getifaddrs/1
  - getopts/2
  - getstat/1
  - getstat/2
  - i/0
  - i/1
  - i/2
  - ipv4_mapped_ipv6_address/1
  - ntoa/1
  - parse_address/1
  - parse_ipv4_address/1
  - parse_ipv4strict_address/1
  - parse_ipv6_address/1
  - parse_ipv6strict_address/1
  - parse_strict_address/1
  - peername/1
  - peernames/1
  - peernames/2
  - port/1
  - setopts/2
  - sockname/1
  - socknames/1
  - socknames/2
- inet_res
  - Top of manual page
  - getbyname/2
  - getbyname/3
  - gethostbyaddr/1
  - gethostbyaddr/2
  - gethostbyname/1
  - gethostbyname/2
  - gethostbyname/3
  - lookup/3
  - lookup/4
  - lookup/5
  - nnslookup/4
  - nnslookup/5
  - nslookup/3
  - nslookup/4
  - resolve/3
  - resolve/4
  - resolve/5
- init
- logger
  - Top of manual page
  - add_handler/3
  - add_handler_filter/3
  - add_handlers/1
  - add_primary_filter/2
  - alert/1
  - alert/2
  - alert/2
  - compare_levels/2
  - critical/1
  - critical/2
  - critical/2
  - debug/1
  - debug/2
  - debug/2
  - emergency/1
  - emergency/2
  - emergency/2
  - error/1
  - error/2
  - error/2
  - format_report/1
  - get_config/0
  - get_handler_config/0
  - get_handler_config/1
  - get_handler_ids/0
  - get_module_level/0
  - get_module_level/1
  - get_primary_config/0
  - get_process_metadata/0
  - get_proxy_config/0
  - i/0
  - i/1
  - info/1
  - info/2
  - info/2
  - log/2
  - log/3
  - log/4
  - notice/1
  - notice/2
  - notice/2
  - remove_handler/1
  - remove_handler_filter/2
  - remove_primary_filter/1
  - set_application_level/2
  - set_handler_config/2
  - set_handler_config/3
  - set_module_level/2
  - set_primary_config/1
  - set_primary_config/2
  - set_process_metadata/1
  - set_proxy_config/1
  - timestamp/0
  - unset_application_level/1
  - unset_module_level/0
  - unset_module_level/1
  - unset_process_metadata/0
  - update_formatter_config/2
  - update_formatter_config/3
  - update_handler_config/2
  - update_handler_config/3
  - update_primary_config/1
  - update_process_metadata/1
  - update_proxy_config/1
  - warning/1
  - warning/2
  - warning/2
  - FModule:check_config/1
  - FModule:format/2
  - HModule:adding_handler/1
  - HModule:changing_config/3
  - HModule:filter_config/1
  - HModule:log/2
  - HModule:removing_handler/1
- logger_filters
  - Top of manual page
  - domain/2
  - level/2
  - progress/2
  - remote_gl/2
- logger_formatter
  - Top of manual page
  - check_config/1
  - format/2
- logger_std_h
  - Top of manual page
  - filesync/1
- logger_disk_log_h
  - Top of manual page
  - filesync/1
- net
  - Top of manual page
  - getaddrinfo/1
  - getaddrinfo/2
  - gethostname/0
  - getifaddrs/0
  - getifaddrs/1
  - getifaddrs/2
  - getnameinfo/1
  - getnameinfo/2
  - if_index2name/1
  - if_name2index/1
  - if_names/0
- net_adm
  - Top of manual page
  - dns_hostname/1
  - host_file/0
  - localhost/0
  - names/0
  - names/1
  - ping/1
  - world/0
  - world/1
  - world_list/1
  - world_list/2
- net_kernel
  - Top of manual page
  - allow/1
  - connect_node/1
  - get_net_ticktime/0
  - getopts/2
  - monitor_nodes/1
  - monitor_nodes/2
  - set_net_ticktime/1
  - set_net_ticktime/2
  - setopts/2
  - start/1
  - start/1
  - start/1
  - stop/0
- os
  - Top of manual page
  - cmd/1
  - cmd/2
  - find_executable/1
  - find_executable/2
  - getenv/0
  - getenv/1
  - getenv/2
  - getpid/0
  - perf_counter/0
  - perf_counter/1
  - putenv/2
  - set_signal/2
  - system_time/0
  - system_time/1
  - timestamp/0
  - type/0
  - unsetenv/1
  - version/0
- pg2
  - Top of manual page
  - create/1
  - delete/1
  - get_closest_pid/1
  - get_local_members/1
  - get_members/1
  - join/2
  - leave/2
  - start/0
  - start_link/0
  - which_groups/0
- rpc
  - Top of manual page
  - abcast/2
  - abcast/3
  - async_call/4
  - block_call/4
  - block_call/5
  - call/4
  - call/5
  - cast/4
  - eval_everywhere/3
  - eval_everywhere/4
  - multi_server_call/2
  - multi_server_call/3
  - multicall/3
  - multicall/4
  - multicall/5
  - nb_yield/1
  - nb_yield/2
  - parallel_eval/1
  - pinfo/1
  - pinfo/2
  - pmap/3
  - sbcast/2
  - sbcast/3
  - server_call/4
  - yield/1
- seq_trace
  - Top of manual page
  - get_system_tracer/0
  - get_token/0
  - get_token/1
  - print/1
  - print/2
  - reset_trace/0
  - set_system_tracer/1
  - set_token/1
  - set_token/2
- user
- wrap_log_reader
  - Top of manual page
  - chunk/1
  - chunk/2
  - close/1
  - open/1
  - open/2
- zlib

# erl_epmd

### Module

erl_epmd

### Module Summary

Erlang interface towards epmd

### Since

Module erl_epmd was introduced in OTP R14B.

### Description

This module communicates with the EPMD daemon, see epmd. To implement your own epmd module please see ERTS User's Guide: How to Implement an Alternative Service Discovery for Erlang Distribution

### Exports

start_link() -> {ok, pid()} | ignore | {error, term()} | OTP 21.0

This function is invoked as this module is added as a child of the erl_distribution supervisor.

register_node(Name, Port) -> Result | OTP 21.0

register_node(Name, Port, Driver) -> Result | OTP 21.0

### Types

Name = string()
Port = integer() >= 0
Driver = inet_tcp | inet6_tcp | inet | inet6
Creation = integer() >= 0
Result = {ok, Creation} | {error, already_registered} | term()

Registers the node with epmd and tells epmd what port will be used for the current node. It returns a creation number. This number is incremented on each register to help with identifying if a node is reconnecting to epmd.

port_please(Name, Host) -> {ok, Port, Version} | noport | OTP 21.0

port_please(Name, Host, Timeout) -> {ok, Port, Version} | noport | OTP 21.0

### Types

Name = atom() | string()
Host = atom() | string() | inet:ip_address()
Timeout = integer() >= 0 | infinity
Port = Version = integer() >= 0

Requests the distribution port for the given node of an EPMD instance. Together with the port it returns a distribution protocol version which has been 5 since Erlang/OTP R6.

address_please(Name, Host, AddressFamily) -> Success | {error, term()} | OTP 21.0

### Types

Name = string()
Host = string() | inet:ip_address()
AddressFamily = inet | inet6
Port = Version = integer() >= 0
Success =
{ok, inet:ip_address()} |
{ok, inet:ip_address(), Port, Version}

Called by the distribution module. Resolves the Host to an IP address.

Another epmd module may return port and distribution protocol version as well.

names(Host) -> {ok, [{Name, Port}]} | {error, Reason} | OTP 21.0

### Types

Host = atom() | string() | inet:ip_address()
Name = string()
Port = integer() >= 0
Reason = address | file:posix()

Called by net_adm:names/0. Host defaults to the localhost. Returns the names and associated port numbers of the Erlang nodes that epmd registered at the specified host. Returns {error, address} if epmd is not operational.

Example:

    (arne@dunn)1> erl_epmd:names(localhost).
    {ok,[{"arne",40262}]}