查看源代码 节点 (Elixir v1.16.2)
与 VM 节点相关的函数。
此模块中的一些函数由编译器内联,类似于 Kernel
模块中的函数,它们在其文档中明确标记为“由编译器内联”。有关内联函数的更多信息,请查看 Kernel
模块。
摘要
函数
如果本地节点处于活动状态,则返回 true
。
建立与 node
的连接。
强制断开节点的连接。
返回本地节点的魔术 cookie。
返回系统中所有可见节点的列表,不包括本地节点。
根据给定的参数返回节点列表。
监控节点的状态。
行为与 monitor/2
相同,只是它允许传递额外的选项,即 :allow_passive_connect
。
尝试与节点建立连接。
返回当前节点。
将 node
的魔术 cookie 设置为原子 cookie
。
返回由 node
上 fun
的应用启动的新进程的 PID。如果 node
不存在,则返回一个无用的 PID。
返回由 node
上 fun
的应用启动的新进程的 PID。
返回由 node
上 module.function(args)
的应用启动的新进程的 PID。
返回由 node
上 module.function(args)
的应用启动的新进程的 PID。
返回由 node
上 fun
的应用启动的新的链接进程的 PID。
返回由 node
上 module.function(args)
的应用启动的新的链接进程的 PID。
在节点上生成给定函数,监控它并返回它的 PID 和监控引用。
在节点上生成给定模块和函数,传递给定的参数,监控它并返回它的 PID 和监控引用。
将非分布式节点变成分布式节点。
将分布式节点变成非分布式节点。
类型
函数
@spec alive?() :: boolean()
如果本地节点处于活动状态,则返回 true
。
也就是说,如果节点可以是分布式系统的一部分。
建立与 node
的连接。
如果成功,则返回 true
,否则返回 false
,如果本地节点未处于活动状态,则返回原子 :ignored
。
有关更多信息,请参阅 :net_kernel.connect_node/1
。
强制断开节点的连接。
这将使 node
看起来好像本地节点已崩溃。此函数主要用于 Erlang 网络身份验证协议。如果断开连接成功,则返回 true
,否则返回 false
。如果本地节点未处于活动状态,则函数返回 :ignored
。
有关更多信息,请参阅 :erlang.disconnect_node/1
。
@spec get_cookie() :: atom()
返回本地节点的魔术 cookie。
如果节点处于活动状态,则返回 cookie,否则返回 :nocookie
。
@spec list() :: [t()]
返回系统中所有可见节点的列表,不包括本地节点。
与 list(:visible)
相同。
由编译器内联。
根据给定的参数返回节点列表。
当参数为列表时,返回的结果是满足列表元素的析取的节点列表。
有关更多信息,请参阅 :erlang.nodes/1
。
由编译器内联。
监控节点的状态。
如果 flag
为 true
,则监控打开。如果 flag
为 false
,则监控关闭。
有关更多信息,请参阅 :erlang.monitor_node/2
。
有关监控所有节点状态更改的信息,请参阅 :net_kernel.monitor_nodes/2
。
行为与 monitor/2
相同,只是它允许传递额外的选项,即 :allow_passive_connect
。
有关更多信息,请参阅 :erlang.monitor_node/3
。
有关监控所有节点状态更改的信息,请参阅 :net_kernel.monitor_nodes/2
。
@spec ping(t()) :: :pong | :pang
尝试与节点建立连接。
如果失败,则返回 :pang
,如果成功,则返回 :pong
。
示例
iex> Node.ping(:unknown_node)
:pang
@spec self() :: t()
返回当前节点。
它返回与内置的 node()
相同的结果。
将 node
的魔术 cookie 设置为原子 cookie
。
默认节点是 Node.self/0
,即本地节点。如果 node
是本地节点,则该函数还会将所有其他未知节点的 cookie 设置为 cookie
。
如果给定的 node
不处于活动状态,则此函数将引发 FunctionClauseError
。
返回由 node
上 fun
的应用启动的新进程的 PID。如果 node
不存在,则返回一个无用的 PID。
有关可用选项的列表,请参阅 :erlang.spawn/2
。
由编译器内联。
返回由 node
上 fun
的应用启动的新进程的 PID。
如果 node
不存在,则返回一个无用的 PID。
有关可用选项的列表,请参阅 :erlang.spawn_opt/3
。
由编译器内联。
返回由 node
上 module.function(args)
的应用启动的新进程的 PID。
如果 node
不存在,则返回一个无用的 PID。
有关可用选项的列表,请参阅 :erlang.spawn/4
。
由编译器内联。
返回由 node
上 module.function(args)
的应用启动的新进程的 PID。
如果 node
不存在,则返回一个无用的 PID。
有关可用选项的列表,请参阅 :erlang.spawn/4
。
由编译器内联。
返回由 node
上 fun
的应用启动的新的链接进程的 PID。
在调用进程和新进程之间原子地建立一个链接。如果 node
不存在,则返回一个无用的 PID(并且由于链接,将收到具有退出原因 :noconnection
的退出信号)。
由编译器内联。
返回由 node
上 module.function(args)
的应用启动的新的链接进程的 PID。
在调用进程和新进程之间原子地建立一个链接。如果 node
不存在,则返回一个无用的 PID(并且由于链接,将收到具有退出原因 :noconnection
的退出信号)。
由编译器内联。
在节点上生成给定函数,监控它并返回它的 PID 和监控引用。
由编译器内联。
在节点上生成给定模块和函数,传递给定的参数,监控它并返回它的 PID 和监控引用。
由编译器内联。
@spec start(node(), :longnames | :shortnames, non_neg_integer()) :: {:ok, pid()} | {:error, term()}
将非分布式节点变成分布式节点。
此功能启动 :net_kernel
和其他相关进程。
此函数在实践中很少调用。相反,节点通过使用 --sname
和 --name
标记通过命令行命名和启动。如果您需要使用此函数来动态命名节点,请确保 epmd
操作系统进程正在运行,方法是调用 epmd -daemon
。
当分布式系统已通过命令行界面或动态方式启动时调用此函数将返回错误。
示例
{:ok, pid} = Node.start(:example, :shortnames, 15000)
@spec stop() :: :ok | {:error, :not_allowed | :not_found}
将分布式节点变成非分布式节点。
对于网络中的其他节点,这与节点停止相同。只有在使用 Node.start/3
启动节点时才有可能,否则返回 {:error, :not_allowed}
。如果本地节点未处于活动状态,则返回 {:error, :not_found}
。