-2
我有一個節點:app01 @ mdiaz,我需要知道的PID(像< 2908.77.0>)如何獲得erlang節點名稱的pid?
我有一個節點:app01 @ mdiaz,我需要知道的PID(像< 2908.77.0>)如何獲得erlang節點名稱的pid?
一個Erlang節點沒有一個單一的PID:有運行多個進程在每個節點上,所以你需要指定你想要的。
如果你想知道這個名字foo
節點[email protected]
上註冊的進程的PID,可以使一個RPC調用erlang:whereis/1
:
([email protected])1> rpc:call([email protected], erlang, whereis, [foo]).
<7120.56.0>
雖然你可能並不需要的是:如果你想要將消息發送到另一個節點上的已命名進程,可以使用{Name, Node}
而不是首先獲取該pid。例如,將消息發送給名爲foo
工藝上[email protected]
:
{foo, [email protected]} ! my_message
您還可以去另一個方向,從PID獲得的節點名稱,與node/1
功能:
([email protected])1> RemotePid = rpc:call([email protected], erlang, whereis, [foo]).
<6928.32.0>
([email protected])2> node(RemotePid).
[email protected]
你的問題很混亂。你想要pid還是節點? – Rei
對於標題中的問題,可以使用erlang:node/1。 對於節點中的進程的pid,請參閱https://stackoverflow.com/questions/32708758/getting-pid-for-a-process-running-on-a-remote-node – Rei
我需要獲取pid – mdely86