Elixir 与 Mix 如何制作守护进程?
Posted
技术标签:
【中文标题】Elixir 与 Mix 如何制作守护进程?【英文标题】:How do Elixir with Mix make a daemon? 【发布时间】:2014-07-25 05:02:37 【问题描述】:Elixir & Mix 都想把服务器做成守护进程。 一直没能找到正确的方法。
另外,我想用erlang reltool。
【问题讨论】:
【参考方案1】:您可以使用--detached
选项来启动与系统控制台分离的运行时系统。它旨在用于运行守护进程和后台进程:
elixir --detached -S mix run
关于 reltool,您可以使用 exrm,尽管在配置 VM 参数时传递 -detached
(单个 -
)。运行时系统的完整参数列表可以在这里找到:http://erlang.org/doc/man/erl.html
【讨论】:
您不需要使用 exrm 传递-detached
,因为使用 bin/myapp start
运行您的版本会自动以分离模式运行它。
但是如果主机服务器重启了怎么办?我的 elixir 应用程序会自动重新启动吗?还是我必须手动启动它?
@simo,您可以使用supervisord 确保进程在重启时启动【参考方案2】:
从 Elixir 1.9+ 起,您应该使用 --erl "-detached"
。像这样:
MIX_ENV=prod elixir --erl "-detached" -S mix run --no-halt
或凤凰:
MIX_ENV=prod elixir --erl "-detached" -S mix phx.server
【讨论】:
使用这些命令将日志放在哪里?以上是关于Elixir 与 Mix 如何制作守护进程?的主要内容,如果未能解决你的问题,请参考以下文章