2009-12-22 49 views

回答

3

您可以使用下面的函數來加載遠程節點模塊,而不提供文件本身:

load_module(Node, Module) -> 
    {_Module, Bin, Filename} = code:get_object_code(Module), 
    rpc:call(Node, code, load_binary, [Module, Filename, Bin]). 

如前所述在code:load_binary/3Filename參數僅用於跟蹤模塊的路徑,並且它指向的文件不被本地node_server使用。

0

您可以將本地代碼發送到遠程節點:

> {Mod, Bin, File} = code:get_object_code(Module). 
> rpc:call(RemoteNode, code, load_binary, [Mod, File, Bin]). 
3

我將你的問題解釋爲希望不將* .beams從文件系統複製到遠程文件系統。

如果您只是測試東西,您可以使用erl shell中的nl(Mod)調用在所有(當前)已知的節點上加載模塊。也就是那些在nodes()中出現的那些。

這將發送代碼並從內存拷貝中加載它,它不會將它存儲在遠程文件系統中。

您還可以使用slave模塊啓動遠程節點。從機訪問其主機的文件系統和代碼服務器。當您撥打test:tut/2功能時,普通自動加載將確保模塊存在於從站中。

+0

嘿這是有用的信息,我不知道。謝謝! – Unoti 2011-01-09 13:31:52