Erlang Central

Remote Code Load

From ErlangCentral Wiki


Remote Load New Code to All Nodes


Solution attribution: this example is buried in erlang rpc multicall doc.

%% Find object code for module Mod 
{Mod, Bin, File} = code:get_object_code(Mod), 

%% and load it on all connected nodes including this one; 
%% the next time the code is called it will be using the new version
{Replies, _} = rpc:multicall(code, load_binary, [Mod, File, Bin]),

%% if this node were the "master/admin" node
%% then to push to everything but this node use:
%% {Replies, _} = rpc:multicall(nodes(), code, load_binary, [Mod, File, Bin]),

%% and then maybe check the Replies list.


This sort of change is tedious within other network infrastructures. see rpc multicall doc for further details.