如何向Mix Release构建的Elixir应用传递命令行参数
Elixir Release 通过 start 命令传递自定义参数的方案
核心解决方法
直接在 start 后面加--分隔符,再传入你需要的自定义参数即可,示例命令如下:
_build/prod/rel/prod/bin/prod start -- arg1 arg2
在你的应用代码中,直接调用System.argv()就能获取到传入的参数列表,以上述命令为例,System.argv()的返回值为["arg1", "arg2"]。
补充说明
- 你之前用
eval命令运行后进程自动停止是正常现象:eval的设计定位就是执行一次性代码片段,执行完成后会直接退出进程,本身就不用于启动常驻运行的服务。 - 你也可以选择用环境变量传递参数,更适合部署场景下的配置传递:
启动命令示例:
代码中取值方式:CUSTOM_ARG1=3 CUSTOM_ARG2=node1 _build/prod/rel/prod/bin/prod startarg1 = System.get_env("CUSTOM_ARG1") arg2 = System.get_env("CUSTOM_ARG2")
内容的提问来源于stack exchange,提问作者Owais Qayum
相关产品推荐
相关产品推荐

