应用启动类型

当启动应用的时候要定义一个启动类型

  1. application:start(Application, Type)

application:start(Application) 和调用 application:start(Application,temporary) 是一样的。类型还可以是 permanent 持久的或者 transient 过渡的:

  • 如果一个持久应用终止了,所有其他的应用以及运行时系统都会被终止。
  • 如果一个过渡应用以 normal 理由终止了,那么这个信息会被上报但是不会终止其他应用。如果一个过渡应用异常终止了——即以非 normal 的理由终止了——那么其他应用以及运行时环境也会被终止。
  • 如果一个临时(temporary)应用终止了,那么会报告该信息但不会终止其他应用。

我们总是可以通过明确调用 application:stop/1 来停止一个应用。无论是什么模式,都不会影响其他应用。

注意在实践中很少使用过渡模式,因为当一个监督树终止了,退出理由会被设置为 shutdown ,而非 normal