【发布时间】:2011-03-04 12:51:12
【问题描述】:
我最近遇到了一个错误,整个 Erlang 应用程序都死了,产生了如下所示的日志消息:
=INFO REPORT==== 11-Jun-2010::11:07:25 ===
application: myapp
exited: shutdown
type: temporary
我不知道是什么触发了这次关闭,但我遇到的真正问题是它没有自行重启。相反,现在空无一物的 Erlang VM 只是坐在那里无所事事。
现在,根据我所做的研究,您可以为应用程序提供其他“启动类型”:“瞬态”和“永久”。
如果我在应用程序内启动一个主管,我可以告诉它使一个特定进程暂时或永久,它会自动为我重新启动它。但是,根据文档,如果我将 application 设为临时或永久,它不会在它死亡时重新启动它,而是会杀死 所有其他 应用程序.
我真正想做的是以某种方式告诉 Erlang VM 一个特定的应用程序应该始终运行,如果它出现故障,请重新启动它。这可以吗?
(我不是在谈论在我的应用程序之上实现主管,因为这是一个问题 22:如果我的主管进程崩溃了怎么办?我正在寻找某种 API 或我可以使用的设置Erlang 监视并为我重新启动我的应用程序。)
谢谢!
【问题讨论】: