节点 | Node
节点
与VM节点相关的函数。
此模块中的一些函数由编译器内联,类似于Kernel
模块,它们在文档中显式标记为“由编译器内联”。有关内联函数的详细信息,请参阅Kernel
模块。
摘要
类型
t()
函数
alive?()
返回true
本地节点是否存在
connect(node)
建立连接到node
disconnect(node)
强制断开节点
get_cookie()
返回本地节点的魔术cookie
list()
返回系统中所有可见节点的列表,不包括本地节点。
list(args)
根据给定的参数返回节点列表。
monitor(node, flag)
监视节点的状态。
monitor(node, flag, options)
表现为monitor/2
但它允许给予额外的选择,即:allow_passive_connect
ping(node)
尝试设置到节点的连接。
self()
返回当前节点。
set_cookie(node \ Node.self(), cookie)
设置node
原子的魔法饼干cookie
spawn(node, fun)
返回的应用程序启动一个新的进程的PID fun
上node
。如果node
不存在,则返回无用的PID
spawn(node, fun, opts)
返回一个新的进程的PID通过的应用程序启动fun
上node
spawn(node, module, fun, args)
返回一个新的进程的PID通过的应用程序启动module.function(args)
上node
spawn(node, module, fun, args, opts)
返回一个新的进程的PID通过的应用程序启动module.function(args)
上node
spawn_link(node, fun)
返回一个新的连接进程的PID通过的应用程序启动fun
上node
spawn_link(node, module, fun, args)
返回一个新的连接进程的PID通过的应用程序启动module.function(args)
上node
start(name, type \ :longnames, tick_time \ 15000)
将非分布式节点转换为分布式节点。
stop()
将分布式节点转换为非分布式节点。
类型
t()
t() :: node
函数
alive?()
alive?() :: boolean
回报true
如果本地节点是活动的。
也就是说,如果节点可以是分布式系统的一部分。
connect(node)
connect(t) :: boolean | :ignored
建立连接node
。
如果成功false
则返回true
,否则返回原子,:ignored
如果本地节点未活动,则返回原子。
有关更多信息,请参阅:net_kernel.connect_node/1
。
disconnect(node)
disconnect(t) :: boolean | :ignored
强制断开节点。
这将看起来node
好像本地节点已经崩溃。该功能主要用于Erlang网络认证协议。true
如果断开连接成功则返回,否则返回false
。如果本地节点没有活动,则函数返回:ignored
。
有关更多信息,请参阅:erlang.disconnect_node/1
。
get_cookie()
返回本地节点的神奇cookie。
如果节点处于活动状态,则返回cookie,否则返回:nocookie
。
list()
list() :: [t]
返回系统中所有可见节点的列表,不包括本地节点。
和list(:visible)
一样。
list(args)
list(state | [state]) :: [t]
根据给定的参数返回节点列表。
当参数是一个列表时,返回的结果是满足列表元素的结点的节点列表。
有关更多信息,请参阅:erlang.nodes/1
。
monitor(node, flag)
monitor(t, boolean) :: true
监视节点的状态。
如果flag
是true
,则打开监视。如果flag
是false
,则关闭监控。
有关更多信息,请参阅:erlang.monitor_node/2
。
要监视所有节点的状态更改,请参阅:net_kernel.monitor_nodes/3
。
monitor(node, flag, options)
monitor(t, boolean, [:allow_passive_connect]) :: true
行为monitor/2
只是它允许给出一个额外的选项,即:allow_passive_connect
。
有关更多信息,请参阅:erlang.monitor_node/3
。
要监视所有节点的状态更改,请参阅:net_kernel.monitor_nodes/3
。
ping(node)
ping(t) :: :pong | :pang
尝试设置到节点的连接。
:pang
如果失败或成功,则返回:pong
。
实例
iex> Node.ping(:unknown_node)
:pang
self()
self() :: t
返回当前节点。
它返回与内置相同的内容node()
。
set_cookie(node \ Node.self(), cookie)
设置node
原子的魔法饼干cookie
。
默认节点是Node.self/0
本地节点。如果node
是本地节点,该函数还会将所有其他未知节点的cookie
设置为cookie
。
FunctionClauseError
如果给定node
不存在,此函数将会引发。
spawn(node, fun)
spawn(t, (() -> any)) :: pid
返回的应用程序启动一个新的进程的PID fun
上node
。如果node
不存在,则返回无用的PID。
有关可用选项的列表,请参阅:erlang.spawn/2
。
编译器插入。
spawn(node, fun, opts)
spawn(t, (() -> any), Process.spawn_opts) ::
pid |
{pid, reference}
返回的应用程序启动一个新的进程的PID fun
上node
。
如果node
不存在,则返回无用的PID。
有关可用选项的列表,请参阅:erlang.spawn_opt/3
。
编译器插入。
spawn(node, module, fun, args)
spawn(t, module, atom, [any]) :: pid
返回的应用程序启动一个新的进程的PID module.function(args)
上node
。
如果node
不存在,则返回无用的PID。
有关可用选项的列表,请参阅:erlang.spawn/4
。
编译器插入。
spawn(node, module, fun, args, opts)
spawn(t, module, atom, [any], Process.spawn_opts) ::
pid |
{pid, reference}
返回的应用程序启动一个新的进程的PID module.function(args)
上node
。
如果node
不存在,则返回无用的PID。
有关可用选项的列表,请参阅:erlang.spawn/5
。
编译器插入。
spawn_link(node, fun)
spawn_link(t, (() -> any)) :: pid
返回的应用程序启动一个新的链接进程的PID fun
上node
。
在调用进程和新进程之间创建一个链接,以原子方式。如果node
不存在,则返回一个无用的PID(并且由于该链接,:noconnection
将会收到一个退出信号并带有退出原因)。
编译器插入。
spawn_link(node, module, fun, args)
spawn_link(t, module, atom, [any]) :: pid
返回的应用程序启动一个新的链接进程的PID module.function(args)
上node
。
在调用进程和新进程之间创建一个链接,以原子方式。如果node
不存在,则返回一个无用的PID(并且由于该链接,:noconnection
将会收到一个退出信号并带有退出原因)。
编译器插入。
start(name, type \ :longnames, tick_time \ 15000)
start(node, :longnames | :shortnames, non_neg_integer) ::
{:ok, pid} |
{:error, term}
将非分布式节点转换为分布式节点。
此功能启动:net_kernel
以及其他相关程序。
stop()
stop() :: :ok | {:error, :not_allowed | :not_found}
将分布式节点转换为非分布式节点。
对于网络中的其他节点,这与节点关闭相同。只有当节点启动时才可能Node.start/3
,否则返回{:error, :not_allowed}
。{:error, :not_found}
如果本地节点不活动,则返回。