运行守护程序的 Erlang/OTP 应用程序的行业标准?
Posted
技术标签:
【中文标题】运行守护程序的 Erlang/OTP 应用程序的行业标准?【英文标题】:Industry standard for running daemonized Erlang/OTP applications? 【发布时间】:2015-02-12 08:11:42 【问题描述】:一些现代基础设施组件,例如 Yaws 和 CouchDB 可以通过
安装在 Ubuntu 上sudo apt-get install
然后就可以开始了
service_name start
或简单的service_name
我想知道这种方法和 Erlang/OTP 方法之间是否有任何区别,即将OTP release
上传到生产服务器,然后使用 rebar 生成的脚本启动它。
行业标准是什么?安装/启动基于存储库的二进制文件或上传/启动 rebar 生成的版本?
此外,基于存储库的二进制文件是否具备所有 OTP 功能,例如 OTP 应用程序结构、监督以及通过控制台附加到实时应用程序的选项?
【问题讨论】:
【参考方案1】:每次,你在启动 erlang,你就在启动一个版本。甚至,如果你只在终端中输入erl
,它会运行一个版本(你可以在erlang_rootdir/releases/name_of_release
中找到.boot
、.rel
和.script
文件。
我认为这回答了您的最后一个问题:从存储库安装的软件包仍然具有 OTP 结构、监督和所有优点。只有几个 bash 脚本,这使得启动和停止它们对习惯service_name start
的人更友好。您还应该能够找到类似于 rebar 生成的脚本。
检查,这些文件在哪里,只需cat
他们。你应该看到,他们只是启动 Erlang 发布。
你不能用包管理器做的唯一事情是热代码升级。大多数包管理器只是简单地停止正在运行的应用程序,安装新版本并重新启动它。在 Erlang 中,您可以升级正在运行的版本,但这是非常高级的东西。除此之外 - 使用操作系统包没有任何缺点。
【讨论】:
以上是关于运行守护程序的 Erlang/OTP 应用程序的行业标准?的主要内容,如果未能解决你的问题,请参考以下文章