[英]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.