bas*_*kin 4 erlang distributed spawn
(nodeA@foo.hyd.com)8> spawn(nodeA@bar.del.com, tut, test, [hello, 5]).
Run Code Online (Sandbox Code Playgroud)
我想在 bar.del.com 上生成一个进程,该进程没有对 foo.hyd.com 的文件系统访问权限(从我生成进程的位置),运行模块“tut”的子例程“test”。
有没有办法做到这一点,而无需为 nodeA@bar.del.com 提供已编译的“tut”模块文件?
您可以使用以下函数在远程节点加载模块,而无需提供文件本身:
load_module(Node, Module) ->
{_Module, Bin, Filename} = code:get_object_code(Module),
rpc:call(Node, code, load_binary, [Module, Filename, Bin]).
Run Code Online (Sandbox Code Playgroud)
如code:load_binary/3 Filename参数中所述,仅用于跟踪模块的路径,并且它指向的文件不被本地 node_server 使用。