首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么即使指定了-setcookie,Erlang escript仍要创建.erlang.cookie

为什么即使指定了-setcookie,Erlang escript仍要创建.erlang.cookie
EN

Stack Overflow用户
提问于 2019-07-30 02:29:47
回答 1查看 136关注 0票数 1

我有一个公司的Erlang应用程序,它是通过使用参数-setcookie调用escript来调用的。即使在命令行中指定了cookie,程序仍然会创建$HOME/.erlang.cookie。这就产生了一个问题,因为有时文件会获得错误的权限,这会导致程序无法运行。

我不知道为什么权限会发生变化,但如果程序在我不需要它的时候停止创建它,我就不会有问题。如果在命令行上提供了值,有没有办法使cookie文件不被创建?似乎不需要这个cookie文件,因为提供了参数。(如果文件确实需要创建,为什么只创建日期而不创建时间?

我有erts-10.3.1。

在@dolphin2017回答之后会有更多信息。该脚本实际上是由distillery工具提供的。我们调用nodetool,它是用这些代码位编码的。

代码语言:javascript
复制
main(Args) ->
    ok = start_epmd(),
    %% Extract the args
    {RestArgs, TargetNode} = process_args(Args, [], undefined),

process_args看起来如下所示:

代码语言:javascript
复制
process_args([], Acc, TargetNode) ->
    {lists:reverse(Acc), TargetNode};
process_args(["-setcookie", Cookie | Rest], Acc, TargetNode) ->
    erlang:set_cookie(node(), list_to_atom(Cookie)),
    process_args(Rest, Acc, TargetNode);
process_args(["-name", TargetName | Rest], Acc, _) ->
    ThisNode = append_node_suffix(TargetName, "_maint_"),
    {ok, _} = net_kernel:start([ThisNode, longnames]),
    process_args(Rest, Acc, nodename(TargetName));
process_args(["-sname", TargetName | Rest], Acc, _) ->
    ThisNode = append_node_suffix(TargetName, "_maint_"),
    {ok, _} = net_kernel:start([ThisNode, shortnames]),
    process_args(Rest, Acc, nodename(TargetName));
process_args([Arg | Rest], Acc, Opts) ->
    process_args(Rest, [Arg | Acc], Opts).

在我看来,它涵盖了Dolphin2017建议的所有内容,包括节点名、start和set_cookie,所以我不确定还需要什么。

现在发现这是来自酿酒厂的,我也会试着把它带到他们的各种沟通渠道上。但你可以在这里添加更多内容。

EN

回答 1

Stack Overflow用户

发布于 2019-08-01 11:34:19

以下是解决方案:

代码语言:javascript
复制
#!/usr/bin/env escript
-mode(compile).
main(_) ->
   SelfNode = ...,%atom, self node name
   Cook = ...,% atom,cookie
   net_kernel:start([SelfNode, longnames]),%
   erlang:set_cookie(node(), Cook),
   rpc:call(TargetNode,...),% do operation with target node
   ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57259570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档