应用控制器

应用控制器

当启动了Erlang运行时系统,作为Kernel应用的一些进程会被启动。其中一个进程是应用控制器 进程,注册为 application_controller 。

所有对应用的操作都由应用控制器来协调。它通过模块 application 里的函数来暴露接口, 请参考 application(3) 。尤其要了解,应用可以被加载、卸载、启动和停止。

加载和卸载应用

在能启动一个应用之前,首先它必须被加载 。应用控制器会读取在 .app 中的信息并存起来。

1> application:load(ch_app).
ok
2> application:loaded_applications().
[{kernel,"ERTS  CXC 138 10","2.8.1.3"},
 {stdlib,"ERTS  CXC 138 10","1.11.4.3"},
 {ch_app,"Channel allocator","1"}]

被停止的或者从未启动过的应用,可以被卸载。该应用相关的信息会从应用控制器的内部数据库中删除。

3> application:unload(ch_app).
ok
4> application:loaded_applications().
[{kernel,"ERTS  CXC 138 10","2.8.1.3"},
 {stdlib,"ERTS  CXC 138 10","1.11.4.3"}]

Note

加载/卸载应用并不会加载/卸载该应用所使用的代码。代码加载是按照一般的方式进行的。