當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


erlang start(Host)用法及代碼示例


start(Host) -> {ok, Node} | {error, Reason}
start(Host, Name) -> {ok, Node} | {error, Reason}
start(Host, Name, Args) -> {ok, Node} | {error, Reason}
類型:
Host = inet:hostname()
Name = atom() | string()
Args = string()
Node = node()
Reason = timeout | no_rsh | {already_running, Node}

在主機 Host 上啟動從節點。主機名不必指定為完全限定名稱;也可以使用短名稱。這與適用於分布式 Erlang 節點名稱的條件相同。

啟動的節點名稱變為 Name@Host 。如果未提供名稱,則該名稱將與執行調用的節點相同(節點名稱的主機名部分除外)。

從節點重置其 user 進程,以便從節點產生的所有終端 I/O 都會自動中繼到主節點。此外,文件進程被中繼到主站。

參數Args用於設置erl命令行參數。如果提供,它會被傳遞到新節點並可用於多種目的;看erl(1).

例如,假設您要在主機 H 上啟動節點名稱為 Name@H 的從節點,並希望該從節點具有以下屬性:

  • 目錄Dir 將添加到代碼路徑中。
  • Mnesia 目錄將設置為 M
  • Unix DISPLAY 環境變量將設置為主節點的顯示。

執行以下代碼來實現此目的:

E = " -env DISPLAY " ++ net_adm:localhost() ++ ":0 ",
Arg = "-mnesia_dir " ++ M ++ " -pa " ++ Dir ++ E,
slave:start(H, Name, Arg).

該函數返回 {ok, Node} ,其中 Node 是新節點的名稱,否則返回 {error, Reason} ,其中 Reason 可以是以下之一:


timeout

主節點與從節點聯係失敗。這可能會在多種情況下發生:

  • 遠程主機上未安裝 Erlang/OTP。
  • 另一台主機上的文件係統與主主機具有不同的結構。
  • Erlang 節點有不同的 cookie。

no_rsh

計算機上未找到遠程 shell 程序。請注意,默認情況下使用ssh,但可以使用-rsh 標誌覆蓋它。


{already_running, Node}

名為 Name@Host 的節點已存在。

相關用法


注:本文由純淨天空篩選整理自erlang.org大神的英文原創作品 start(Host) -> {ok, Node} | {error, Reason}。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。