![](/img/trans.png)
[英]Starting an Erlang slave node in escript fails when using custom Erlang in Ubuntu 10.4
[英]Erlang: starting slave node
我正在嘗試在集群上啟動 Erlang 從屬節點,但收到bash: erl: command not found
消息。 雖然我有 erl 的別名。 這是我實際做的:
[user@n001 ~]$ erl -rsh ssh -sname n001
Eshell V5.7.5 (abort with ^G)
(n001@n001)1> slave:start_link("user@n002", n002, "-rsh ssh").
bash: erl: command not found
{error,timeout}
(n001@n001)2>
也許,有什么不對嗎? 謝謝。
更新:
我已經將 Erlang bin dir 添加到我的$PATH
變量中; 我已經設置了$ERLANG_ROOT_DIR
變量; 在~/
創建symlink
到erl
- 但沒有任何改變......
我已經在~/bin/erlang
目錄中安裝了 Erlang...
問題出在 bash 上:實際上 erlang 通過 ssh 連接到節點,在非交互模式下調用默認 sh。 但是當 bash 在非交互模式下啟動時,它不會讀取 .bashrc ,其中存儲了我的路徑變量和別名。 所以我切換到 zsh,現在一切正常! ;)
我相信別名不會被尊重
erl 需要真正在你的道路上
另外,我相信您的 .bashrc 也不會執行。 所以你可能需要將“erl”符號鏈接到 /usr/bin 或 /usr/local/bin
您似乎對 start_link/3 的 Host 字段使用了錯誤的格式;
它應該是一個原子,代表節點名稱(第二個參數,也是一個原子)應該開始的主機,從而產生節點名稱@Host。
所以在你的情況下
slave:start_link('n002', 'n002', "-rsh ssh").
我猜是二郎餅干。
你能ping通n002嗎? 如果是,那么兩個節點是否具有相同的 cookie?
例如,您可以嘗試: erl -sname abc -rsh ssh -setcookie secretcookie
erl> slave:start(n002, name, "-setcookie secretcookie"). %% 所以這兩個節點共享一個cookie
只需使用
>ssh user@n002 erl
檢查 erl 在 n002 上是否正常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.