使用 unix 批处理自动化 Erlang shell 节点
Posted
技术标签:
【中文标题】使用 unix 批处理自动化 Erlang shell 节点【英文标题】:Automate Erlang shell nodes with unix batch 【发布时间】:2011-12-04 07:47:12 【问题描述】:我可以从批处理文件中运行许多 erlang 节点。但是,我可以将一些参数传递给 erl 使其执行一些命令吗?
【问题讨论】:
看起来 erl -eval 解决了我的问题。 也许我的回复 on a similar questions 可能会有所帮助。 【参考方案1】:如果你想启动一个节点,例如启动一个 erlang 应用程序,或者运行几行代码来启动节点,你可以按以下方式运行 erl 命令
erl -eval "application:start(my_app)"
或者用几个命令启动节点
erl -eval "Res = my_first_module:my_start_fun(MyArg),
my_log:log(Res),
another_module:another_fun(Res)"
上面也一样,只是把节点放到后台进程中
erl -sname nodename
-setcookie nodecookie
-eval "Res = my_first_module:my_start_fun(MyArg),
my_log:log(Res),
another_module:another_fun(Res)"
-detached
但是,如果您想以更“脚本化”的方式运行 erlang,我建议您查看 escript 和 following question,如建议的 D.Nibon
【讨论】:
【参考方案2】:是的。你可以。 如果你问得更具体,如果我可以的话,我会给你一个更具体的答案。 这似乎是一个比“bash”问题更“erlang”的问题。
【讨论】:
启动终端 -> 启动 erl -> 在 erlang shell (module_name:function_name()) 中运行一些命令。前两步我已经可以做,但坚持到了第三步。 有没有办法给erl命令一个字符串,它会被解释为erlang命令?以上是关于使用 unix 批处理自动化 Erlang shell 节点的主要内容,如果未能解决你的问题,请参考以下文章
我无法在我的 ubuntu 18.10 cosmic 系统上安装 erlang/Elixir
Erlang:控制Erlang进程崩溃时如何使连接的外部OS进程自动死亡?