Erlangでrpc

@kuenishiさんからrpc:callを教えてもらった.

Erlang -- rpc

次のようなファイルを用意して,

-module(rpcserver).
-export([testcall/0]).
testcall() ->
    io:format("remote calling", []),
    okay.

一つのTerminalで実行

~/Documents/.../Erlang/rpc $ erl -sname fuga
Erlang R14A (erts-5.8) [source] [64-bit] [smp:4:4] [rq:4] [async-threads:0] [hipe] [kernel-poll:false]

Eshell V5.8  (abort with ^G)
(fuga@SuzBookPro)1> c(rpcserver).
{ok,rpcserver}

別のTerminalでrpc:callでNodeを指定してこの関数を実行できる.

(tako@SuzBookPro)2> rpc:call(fuga@SuzBookPro, rpcserver, testcall, []).
remote callingokay

io:formatの出力結果が呼び出し側で表示されるのがミソ?

更にerlangモジュールのmemory関数をrpcしてみるとこんなかんじ

(tako@SuzBookPro)3> rpc:call(fuga@SuzBookPro, erlang, memory, []).    
[{total,9551720},
 {processes,874872},
 {processes_used,868264},
 {system,8676848},
 {atom,619969},
 {atom_used,594139},
 {binary,58744},
 {code,5966812},
 {ets,302640}]