• 应用控制器
    • 加载和卸载应用

    应用控制器

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

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

    加载和卸载应用

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

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

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

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

    Note

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