【问题标题】:How to get in erlang the pid of a node name?如何在erlang中获取节点名称的pid?
【发布时间】:2016-04-25 14:46:07
【问题描述】:

我有一个节点:app01@mdiaz,我需要知道 pid(类似于

【问题讨论】:

标签: erlang pid


【解决方案1】:

一个 Erlang 节点没有一个 pid:每个节点上运行着许多进程,所以你需要指定你想要的。

如果想知道在bar@localhost节点上注册名为foo的进程的pid,可以对erlang:whereis/1进行RPC调用:

(foo@localhost)1> rpc:call(bar@localhost, erlang, whereis, [foo]).
<7120.56.0>

尽管您可能不需要:如果您想向另一个节点上的命名进程发送消息,您可以使用{Name, Node} 而不是首先获取 pid。例如,要向bar@localhost 上名为foo 的进程发送消息:

{foo, bar@localhost} ! my_message

您也可以使用node/1 函数从 pid 获取节点名称:

(foo@localhost)1> RemotePid = rpc:call(bar@localhost, erlang, whereis, [foo]).
<6928.32.0>
(foo@localhost)2> node(RemotePid).
bar@localhost

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-21
    • 1970-01-01
    • 2012-08-29
    • 2018-12-21
    相关资源
    最近更新 更多