Elixir:为使用mix escript.build创建的版本设置co​​okie和主机名

时间:2016-12-21 18:47:54

标签: elixir

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

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

运行使用cookie创建的可执行文件时,如何为namemix 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以便可执行文件读取它?

1 个答案:

答案 0 :(得分:3)

据我所知,escripts无法读取vm.args。你有(至少)2个选项:

  1. 在传递给emu_argsescript的{​​{1}}的{​​{1}}密钥中设置这些值:

    project/0
  2. 解析CLI参数并设置mix.exs函数中的值:

    def project do
      [app: :m,
       ...,
       escript: [main_module: M, emu_args: ["-name foo@bar -setcookie baz"]]]
    end
    
    main