【问题标题】:Erlang Get Sname Given PidErlang Get Sname Given Pid
【发布时间】:2012-02-25 05:48:13
【问题描述】:

我在不同的机器上运行了三个Erlang节点,启动如下:

erl -sname test@box1 -cookie cookie (on one machine)
erl -sname test@box2 -cookie cookie (on another machine)
erl -sname test@box3 -cookie cookie (on a third machine)

Box1 是主机。 Box2 和 Box3 是工人。当 Box1 向 Box2 和 Box3 发送任务时,它们都以结果响应。但是,此时 Box1 只知道 Box 2 和 3 上 Erlang 进程的 pid。有没有什么办法可以得到远程进程的 sname,给定 pid?还是远程进程必须发回其主机名?

【问题讨论】:

    标签: erlang erlang-otp


    【解决方案1】:

    你可以使用 node/1 功能:

    3> node(self()).
    nonode@nohost
    

    【讨论】:

    • 节点 /1 的参数可以是 pid、引用或端口。它甚至被允许在警卫测试中。
    • 非常感谢!我什至没有意识到有一个节点/ 1。这大大简化了我必须进行的更改。
    猜你喜欢
    • 1970-01-01
    • 2013-05-25
    • 2011-03-10
    • 2012-09-30
    • 2014-11-30
    • 1970-01-01
    • 2015-08-22
    • 2012-10-17
    • 2015-03-17
    相关资源
    最近更新 更多