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 项目在其他主机上产生错误的命令的主要内容,如果未能解决你的问题,请参考以下文章
如何告诉 rebar3 在 Windows 上使用 werl?
为啥我不能在使用 rebar3 生成的应用程序中运行 rebar3 命令?