【发布时间】:2013-11-23 09:58:56
【问题描述】:
我目前正在运行一个通过 Nifs 运行 C 代码的 Erlang 应用程序。但是,如果 C 代码中出现分段错误,则整个节点以及运行 Erlang 应用程序的 Erlang 虚拟机都会关闭。
监控 Erlang 应用程序并在虚拟机死机时重新启动它的最佳方法是什么?
【问题讨论】:
标签: c erlang erlang-shell erlang-ports
我目前正在运行一个通过 Nifs 运行 C 代码的 Erlang 应用程序。但是,如果 C 代码中出现分段错误,则整个节点以及运行 Erlang 应用程序的 Erlang 虚拟机都会关闭。
监控 Erlang 应用程序并在虚拟机死机时重新启动它的最佳方法是什么?
【问题讨论】:
标签: c erlang erlang-shell erlang-ports
我使用了一个叫做supervisord 的东西。与心脏相比的一些优势:
【讨论】:
heart 实际上未能正确启动我的节点,使用最初用于启动它的相同命令行。不知道为什么,我也没有时间去追查。
如果你想用 Erlang 的方式来做,你可以使用上面提到的任何解决方案(心脏,supervisord)。如果你想以 Unix 方式来做,首先你应该让你的 Erlang 应用程序表现为 Unix 守护进程。
为此使用erld。接下来你可以做一件熟悉的事情:监控/重启熟悉的 Unix 守护进程。
【讨论】: