我有以下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!").
Run Code Online (Sandbox Code Playgroud)
在Ubuntu 10.04上运行时,我得到了这个:
$ ./start_slave
Node started successfully!
$
Run Code Online (Sandbox Code Playgroud)
我想安装自己的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}
Run Code Online (Sandbox Code Playgroud)
即使我将第一行更改为escript以使用我的erlang版本,它仍然无效:
#!/home/user/Applications/bin/escript
Run Code Online (Sandbox Code Playgroud)
从属节点启动时erlang:open_port/2似乎正在使用调用,而该调用sh又不会读取我.bashrc设置自定义PATH环境变量的文件.slave:start_link/3等待从节点响应时似乎发生超时,但它从未发生过.
如何在Ubuntu 10.4上滚动我自己的Erlang安装并在escripts中启动slave节点?
更新:我试图将路径添加到我的自定义Erlang里面/etc/environment(PATHUbuntu 中的原始设置),但这不会改变任何东西......
更新2:接受给出的唯一答案(即使它没有解决问题).Ubuntu和Erlang版本现在有点老了,这可能不再是问题了.
| 归档时间: |
|
| 查看次数: |
1269 次 |
| 最近记录: |