在Ubuntu 10.4中使用自定义Erlang时,在escript中启动Erlang从属节点失败

我有以下escript:
#!/usr/bin/env escript
%%! -name test_starter@127.0.0.1

main(_) ->
    NodeName = test,Host = '127.0.0.1',Args = "",{ok,_Node} = slave:start_link(Host,NodeName,Args),io:format("Node started successfully!").

在Ubuntu 10.04上运行时,我得到了这个:

$./start_slave
Node started successfully!
$

我想安装自己的Erlang(最新版本,调试透析器编译文件等),因为在Ubuntu上安装Erlang缺少一些功能.我将我的Erlang二进制文件放在〜/ Applications / bin中.启动Erlang通常可以正常工作,并且在Erlang shell中启动从属节点也可以正常工作.

但是,现在我的escript不起作用.大约60秒后它返回一个错误

$./start_slave                                   
escript: exception error: no match of right hand side value {error,timeout}

即使我将第一行更改为escript以使用我的erlang版本,它仍然不起作用:

#!/home/user/Applications/bin/escript

从节点启动时调用了erlang:open_port / 2,它似乎正在使用sh,而sh又不会读取设置我的自定义PATH环境变量的.bashrc文件.当slave:start_link / 3等待从节点响应时,似乎发生超时,它从未做过响应.

如何在Ubuntu 10.4上滚动我自己的Erlang安装并在escripts中启动slave节点?

更新:我试图在/ etc / environment(在Ubuntu中设置原始PATH的位置)中添加自定义Erlang的路径,但这不会改变任何东西……

更新2:接受给出的唯一答案(即使它没有解决问题). Ubuntu和Erlang版本现在有点老了,这可能不再是问题了.

是否可能与其他Erlang安装一起运行从属节点?根据 the documentation on slave nodes中的超时错误原因列出我看到“Erlang节点有不同的cookie”,我相信在这种情况下可能会发生.

如果是这种情况,在等待超时时运行ps -FC erlang应该会显示具有不同路径的进程.

相关文章

ubuntu退出redis的示例:指定配置文件方式启动源码redis:roo...
ubuntu中mysql改密码忘了的解决方法:1.在终端中切换到root权...
ubuntu安装mysql失败的解决方法原因:可能是原有的MySQL还有...
使用centos和ubuntu建站的区别有以下几点1.CentOS是Linux发行...
ubuntu图形界面和字符界面切换的方法:可以通过快捷键CTRL+A...
ubuntu中重启mysql失败的解决方法1.首先,在ubuntu命令行中,...