繁体   English   中英

Erlang:启动从节点

[英]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变量; ~/创建symlinkerl - 但没有任何改变......
我已经在~/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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM