mongoose之main函数

本文详细介绍了mongoose服务的启动过程,包括初始化服务器名称、启动mongoose服务、捕获SIGTERM和SIGINT信号等关键步骤,并解释了如何通过这些信号来终止服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mongoose的main函数源码如下

int main(int argc, char *argv[]) 
{
  init_server_name();
  start_mongoose(argc, argv);
  printf("%s started on port(s) %s with web root [%s]\n",
         server_name, mg_get_option(ctx, "listening_ports"),
         mg_get_option(ctx, "document_root"));
  while (exit_flag == 0) {
    sleep(1);
  }
  printf("Exiting on signal %d, waiting for all threads to finish...",
         exit_flag);
  fflush(stdout);
  mg_stop(ctx);
  printf("%s", " done.\n");

  return EXIT_SUCCESS;
}
先初始化服务器的名字,名字中包含了当前mongoose的版本号,该版本号是一个宏。然后启动mongoose服务,mongoose之所以能工作也是这个启动函数的功劳,启动服务后进入循环阶段,循环条件是exit_flag,这是一个静态全局变量,默认初始化为0,然后在信号处理程序中置为别的值,前面在start_mongoose中捕捉SIGTERM和SIGINT信号,SIGTERM信号一般是因为使用了kill或killall命令杀掉进程所产生,SIGINT信号一般是因为用户键入了CTRL+C所产生。
当捕捉到这里两个信号时程序将结束。最后调用mg_stop()结束程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值