gpt4 book ai didi

Elixir:为使用 mix escript.build 创建的发行版设置 cookie 和主机名

转载 作者:行者123 更新时间:2023-12-04 18:29:24 24 4
gpt4 key购买 nike

当以交互方式运行 iex 时,可以使用

iex --cookie <cookie> --name <hostname>

如何为 cookie 设置相同的值和 name运行使用 mix escript.build 创建的可执行文件时?

我发现我需要创建一个 vm.args包含以下内容的文件
## Name of the node
-name name@host

## Cookie for distributed erlang
-setcookie cookie

所以我创建了一个 vm.args文件与可执行文件在同一目录中。但是当我打印 Node.self() , 我得到 :nonode@nohost .

那么我在哪里存储 vm.args以便它被可执行文件读取?

最佳答案

据我所知,vm.args不是由脚本读取的。您有(至少)2 个选项:

  • emu_args 中设置这些值 key 传递给 escriptproject/0mix.exs :
    def project do
    [app: :m,
    ...,
    escript: [main_module: M, emu_args: ["-name foo@bar -setcookie baz"]]]
    end
  • 解析 CLI 参数并在您的 main 中设置值功能:
    defmodule M do
    def main([name, cookie]) do
    Node.start String.to_atom(name)
    Node.set_cookie String.to_atom(cookie)
    IO.inspect {Node.self, Node.get_cookie}
    end
    end
    $ mix escript.build
    $ ./m foo@bar baz
    {:foo@bar, :baz}
  • 关于Elixir:为使用 mix escript.build 创建的发行版设置 cookie 和主机名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41269876/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com