很多时候,我们的程序需要一些预定义的参数,比如上次说的tcp_server的例子

一般参数有几种途径,具体参考这里http://blog.yufeng.info/archives/2852

app里面,env字段,比如,我们的tcp_server_app.src

{application, tcp_server,
[
{description, ""},
{vsn, "0.1"},
{registered, []},
{applications, [
kernel,
stdlib
]},
{mod, { tcp_server_app, []}},
{env, [
{listen_port,}
]}
]}.

这种直接编译以后运行,不需要rebar generate

还有一种,放基于rebar项目的rel/files/sys.config里面,例如

[
{sasl, [
{sasl_error_logger, {file, "log/sasl-error.log"}},
{errlog_type, error},
{error_logger_mf_dir, "log/sasl"}, % Log directory
{error_logger_mf_maxbytes, }, % MB max file size
{error_logger_mf_maxfiles, } % files max
]}, {tcp_server,[
{listen_port,}
]}
].

tcp_server是实现了application的behavior的模块名字

应用里面的代码大概就是这样

-define(DEF_PORT,  ).

get_app_env(Opt, Default) ->
case application:get_env(Opt) of
{ok, Val} -> Val;
_ ->
case init:get_argument(Opt) of
[[Val | _]] -> Val;
error -> Default
end
end. ListenPort = get_app_env(listen_port, ?DEF_PORT).

erlang 应用获取系统参数的更多相关文章

  1. 23、java 通过System.getProperties()获取系统参数

    1.java的System.getProperty()方法可以获取的值 java.version Java 运行时环境版本 java.vendor Java 运行时环境供应商 java.vendor. ...

  2. java 通过System.getProperties()获取系统参数

    转自:https://www.cnblogs.com/ksuifeng/archive/2010/09/25/1834416.html 1.java的System.getProperty()方法可以获 ...

  3. ansible的两种命令执行方式 : ad-hoc / playbook以及通过setup模块获取系统参数

    一.什么是ad-hoc和playbook  ad-hoc : 如果我们敲入一些命令去快速的完成一些操作,而不需要将这些执行过的命令刻意保存下来,这样的命令就叫做as-hoc命令,这里不做过多赘述. p ...

  4. Go-15-flag.String 获取系统参数

    场景: 启动应用程序时,需要传入系统参数.例如:./start --b /notebook --p true --n 8 package main import ( "fmt" f ...

  5. 通过System.getProperties()获取系统参数

    Properties props=System.getProperties(); //系统属性    System.out.println("Java的运行环境版本:"+props ...

  6. sysconf获取系统参数

    头文件: #include <unistd.h> 原型:long sysconf(int sysnum); 示例: #include <stdio.h> #include &l ...

  7. 关于Java获取系统信息

    本文部分转载自: http://www.cnblogs.com/wuhenke/archive/2011/11/19/2255400.html 我总结的相关类似博客:http://www.cnblog ...

  8. Erlang运行中的错误

    Erlang运行时发生错误时,会返回一些错误信息,理解这些信息,对于学好.用好Erlang来说是必要. Erlang中的运行错误包括:badarg, badarith, badmatch, funct ...

  9. Erlang运行时的错误

    Erlang运行时发生错误时,会返回一些错误信息,理解这些信息,对于学好.用好Erlang来说是必要. Erlang中的运行错误包括:badarg, badarith, badmatch, funct ...

随机推荐

  1. 配置可对外链接的Redis

    链接服务器的Redis telnet 192.168.1.200 6379 Trying 192.168.1.200... telnet: Unable to connect to remote ho ...

  2. Java 各种锁的小结

    一. synchronized 在 JDK 1.6 之前,synchronized 是重量级锁,效率低下. 从 JDK 1.6 开始,synchronized 做了很多优化,如偏向锁.轻量级锁.自旋锁 ...

  3. 【lightoj-1002】Country Roads(dijkstra变形)

    light1002:传送门 [题目大意] n个点m条边,给一个源点,找出源点到其他点的‘最短路’ 定义:找出每条通路中最大的cost,这些最大的cost中找出一个最小的即为‘最短路’,dijkstra ...

  4. sql语句遇到错误: The used SELECT statements have a different number of columns :

    这是因为使用union的两个SQL语句产生的记录的表结构不一致. 必须是结构完全一致的记录集合才可以使用UNION. 以上就是两个表的字段不一样,导致,所以大家可以检查下.

  5. 如何发布二次开发后的openfire源码到linux服务器中

    这篇文章是在你已经down了openfire的源码,然后在本地跑起来了,再然后开发了一个自己的插件,想要发布到服务器上.ok这时候出现了一个问题,怎么才能发布到服务器上呢?别急往下看: 1.运行ant ...

  6. JSP的指令

    JSP 指令 JSP指令用来设置整个JSP页面相关的属性,如网页的编码方式和脚本语言. 语法格式如下: <%@ directive attribute="value" %&g ...

  7. 《Drools7.0.0.Final规则引擎教程》第4章 4.3 定时器

    定时器 规则用基于 interval(间隔)和cron的定时器(timer),替代了被标注过时的duration 属性.timer属性的使用示例: timer ( int: <initial d ...

  8. Tiny4412 Android5.0 定制:编译生成img后如何删除原厂的apk

    在android-5.0.2/build/core/Makefile的315行可以看到,这里是apk生成签名相关的地方. 315 name := $(TARGET_PRODUCT) 316 ifeq ...

  9. 解决PKIX问题:unable to find valid certification path to requested target

    第一步:执行方式:java InstallCert hostname                       eg:java InstallCert www.cebbank.com 第二步:然后输 ...

  10. 打包发布自己的nodejs包

    下午的时候写了一篇关于一个不成熟的模板引擎的博客,觉得还是不太够,然后就封装了起来,做成了一款开发包.最后为了尝试一下如何发布自己的包,就又完善了一下.做此文以记之. 初衷 说来也不是什么高大上的东西 ...