1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| -module(mon_proc).
-export([start/0]). -export([init/0]). -export([loop/0]).
start() -> Pid = spawn(?MODULE,init,[]), register(?MODULE, Pid), {ok, Pid}.
init() -> io:format("on ~p init ~n", [?MODULE]), process_flag(trap_exit, true), dist_proc:start(), _Ref = erlang:monitor(process, dist_proc), loop().
loop() -> receive {'DOWN', Ref, process, {Pid, Node}, Reason} -> erlang:demonitor(Ref), io:format("~p got pid down msg ~p ~p ~p ~n", [?MODULE, Pid, Node, Reason]), loop(); {'EXIT', From, Reason} -> io:format("~p got exit msg ~p ~p~n", [?MODULE, From, Reason]); Msg -> io:format("~p got other msg ~p~n", [?MODULE, Msg]), loop() end.
|