:
1. Erlang
Erlang ( .erl), - BEAM (.beam ), Erlang (BEAM), . , , , Erlang OTP, .
A.
, foo, :
$ erl \
-pa path/to/foo \
-s foo \
-sname foo_node \
-setcookie foo_secret \
-noshell -noinput > /path/to/foo.log &
- -pa
- -s
foo - -sname
- -setcookie cookie
- -noshell erlang
- -noinput -
:
$ erl \
-sname stop_foo_node \
-setcookie foo_secret \
-eval 'rpc:call(foo, foo_node, stop, []), init:stop()' \
-noshell -noinput > /path/to/foo.log &
foo :
$ erl \
-sname debug_foo_node \
-setcookie foo_secret \
-rmesh foo_node
make script .
, script -boot. , , , , . boot script Erlang.
.
- reltool, . , boot script, .. reltool . Erlang/OTP, reltool:
├── deps
│ └── ibrowse
├── ebin
│ ├── foo.app
│ ├── foo_app.beam
│ └── foo_sup.beam
├── rebar.config
├── rel
│ ├── files
│ ├── foo
│ └── reltool.config
└── src
├── foo_app.erl
├── foo.app.src
└── foo_sup.erl
Rebar, Erlang Erlang, . , .
2. Erlang
Erlang :
Eunit: OTP, , , .
CommonTest: OTP, , .
" " " ". Rebar rebar eunit rebar ct .
3.
init:get_argument/1, , :
$ erl -foo foo1 foo2 -bar bar1
1> init:get_argument(foo).
{ok,[["foo1","foo2"]]}
2> init:get_argument(bar).
{ok,[["bar1"]]}