Erlang - 使用附带命令启动VM'/节点

时间:2013-12-06 18:35:57

标签: erlang otp

我正在测试一个小系统。

每次我做出改变都非常耗时,因为我需要:

  1. 启动4个具有特定名称的Erlang节点/ Vms
  2. 在每个代码上运行一行代码
    • 信使:START_SERVER()
    • 信使:start_router()
    • 信使:登录(史蒂芬)。
    • 信使:登录(戴维)
  3. 这些行中的每一行都在不同的节点上执行。

    无论如何我能自动化吗?我正在看启动脚本,但我找不到任何简单而且相对于我的东西

1 个答案:

答案 0 :(得分:2)

您可以尝试创建简单的bash脚本:

#! /bin/bash

NAME=node1
mkdir -p /tmp/$NAME
run_erl -daemon /tmp/$NAME /tmp/$NAME erl -sname $NAME -eval "ok = messenger:start_server()"

NAME=node2
mkdir -p /tmp/$NAME
run_erl -daemon /tmp/$NAME /tmp/$NAME erl -sname $NAME -eval "ok = messenger:start_router()"

NAME=node3
mkdir -p /tmp/$NAME
run_erl -daemon /tmp/$NAME /tmp/$NAME erl -sname $NAME -eval "ok = messenger:logon(steven)"

NAME=node4
mkdir -p /tmp/$NAME
run_erl -daemon /tmp/$NAME /tmp/$NAME erl -sname $NAME -eval "ok = messenger:logon(dave)."

您可以在/tmp/nodeN目录中找到节点的所有输出。 您可以使用以下bash命令连接到节点:

erl -sname 'test@your-host-name' -remsh 'nodeN@your-host-name'

您可以在erl manrun_erl man找到更多信息。