rebar3 项目在其他主机上产生错误的命令

Posted

技术标签:

【中文标题】rebar3 项目在其他主机上产生错误的命令【英文标题】:rebar3 project spawns wrong command on other hosts 【发布时间】:2019-03-21 13:34:04 【问题描述】:

我有一个 rebar3 项目。在这个项目中,主管应该在多台机器上生成一堆 Erlang 节点。我发现由于日志中的错误,节点永远不会启动:

sh: no such file or directory h/mberns01/..../prod

只有路径的前导斜杠丢失,命令的其余部分是正确的。

这个命令是在这个项目的什么地方生成的,为什么它会缺少前导斜杠?我什至不确定我可以在此处提供哪些其他信息对您有所帮助——请告诉我。

干杯。

编辑:所以看起来init:get_argument(progname) 返回了错误的程序(没有前导/)。不知道为什么...

【问题讨论】:

【参考方案1】:

似乎可以通过使用slave:start/5 来回避这个问题,它允许用户指定他们想要在远程主机上运行的Prog

spawn(slave, start, [Host, 'node', [], self(), "erl"])

但它没有回答为什么缺少/的问题。

【讨论】:

【参考方案2】:

init:get_argument(progname) 应该返回 ok,[["name"]] 而不是目录,所以没有前导 /

另外,出于好奇,你是如何产生新节点的?您使用的是奴隶、游泳池还是其他东西?如果是奴隶,你传递什么参数?

【讨论】:

我正在使用slave:start 我并不期待 trailing /,而是 leading —— 因为那应该是文件系统的根 / .

以上是关于rebar3 项目在其他主机上产生错误的命令的主要内容,如果未能解决你的问题,请参考以下文章

ansible主机互信

如何告诉 rebar3 在 Windows 上使用 werl?

为啥我不能在使用 rebar3 生成的应用程序中运行 rebar3 命令?

Nuget包安装错误 - 无效的URI:无法解析权限/主机

Bad Request (Invalid Hostname) 是啥意思

提供错误推特 IP 地址的主机命令