Ejabberd源码学习——启动流程

本文详细介绍了Ejabberd的启动流程,包括启动入口ejabberd:start/0和ejabberd_app:start/2方法,日志管理,如ejabberd_logger模块的动态生成和日志级别设置,进程监控树的结构,以及模块和服务的启动。此外,还讨论了ejabberd监听端口的实现和ejabberd监听器的工作方式。
摘要由CSDN通过智能技术生成

这篇文章是我之前在RYTong内部分享的一篇文章,将简单介绍一下Ejabberd在启动时候的流程,以及启动过程中一些关键的逻辑。

PS:Ejabberd版本是2.1.11

启动入口

Ejabberd的启动函数是ejabberd:start/0方法,并最终调用ejabberd_app:start/2方法。这个方法实现了启动的主体逻辑,顺着该方法的源码逻辑就可以了解Ejabberd启动都做了些什么了。

start(normal, _Args) ->
    ejabberd_loglevel:set(4),
    write_pid_file(),
    application:start(sasl),
    randoms:start(),
    db_init(),
    sha:start(),
    stringprep_sup:start_link(),
    xml:start(),
    start(),
    translate:start(),
    acl:start(),
    ejabberd_ctl:init(),
    ejabberd_commands:init(),
    ejabberd_admin:start(),
    gen_mod:start(),
    ejabberd_config:start(),
    ejabberd_check:config(),
    connect_nodes(),
    %% Loading ASN.1 driver explicitly to avoid races in LDAP
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值