keepalive源码学习

start_vrrp_child

          1,创建子进程
          2,父进程执行  thread_add_child,并推出
                    2.1 定义新的 thread_t 对象,并进行根据给定参数进行初始化,线程id,处理函数等
                              vrrp_respawn_thread :
                              判断如果进程类型为  THREAD_CHILD_TIMEOUT,则再次执行 thread_add_child,并返回
                              如果不是此种类型,则  start_vrrp_child
                    2.2 调整时间
                    2.2 按时间从小到大排序插入队列
          3,子进程将pid写入 vrrp_pidfile中
          4,清理掉从父进程继承的信号处理,以及thread_master_t,并创建新的master:
                   master = thread_make_master();
          5,改变目录到 "/"
          6,umask(0)
          7,UNSET_RELOAD
          8,vrrp_signal_init():
                    8.1  signal_handler_init():创建pipe,对signal_SIGHUP_handler,signal_SIGINT_handler,signal_SIGTERM_handler,signal_SIGCHLD_handler进行初始化为NULL
                    8,2  signal_set(SIGHUP, sighup_vrrp, NULL);
                              8.2.1  sighup_vrrp:thread_add_event(master, reload_vrrp_thread, NULL, 0);       thread_new 一个thread,将其加入到  m->event 队列
                    8.3   signal_set(SIGINT, sigend_vrrp, NULL); signal_set(SIGTERM, sigend_vrrp, NULL);
                              thread_add_terminate_event(master);
                    8.4   signal_ignore(SIGPIPE);
                              signal_set(signo, NULL, NULL):   switch 设置
                              signal_SIGHUP_handler,signal_SIGHUP_v,signal_SIGINT_handler
                              ,signal_SIGINT_v,signal_SIGTERM_handler,signal_SIGTERM_v,
                              signal_SIGCHLD_handler,signal_SIGCHLD_v
          9,start_vrrp():
                    9.1  init_interface_queue(netlink库的使用具体待学习)
                              9.1.1   init_if_queue():   if_queue = alloc_list(free_if, dump_if);
                              9.1.2   netlink_interface_lookup():
                                        9.1.2.1  声明结构体:struct nl_handle nlh, 调用netlink_set_block
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值