Spawn remote process w/o common file system

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”模块文件?

gle*_*ber 5

您可以使用以下函数在远程节点加载模块,而无需提供文件本身:

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 使用。