`

PostgreSQL启动过程中的那些事十二:为postmaster进程设置信号句柄

阅读更多

 

    现在离数据库启动过程的高潮只有几步之遥,这几步比较简单,简要描述之。

    这几步包括:

       八:设置虚拟文件描述符

       九:初始化活跃 backend 进程列表

       十:创建 opts 文件

       十一:保存非默认 GUC 参数到文件

       十二:为 postmaster 进程安装信号句柄

       十三:为统计进程启动准备资源

       十四:为 autovuc 进程启动做条件检查

       十五:加载客户端认证配置文件

      

 

再接着调用 pqinitmask 方法和 pqsignal 方法,为 postmaster 进程安装信号句柄

    pqinitmask();

    PG_SETMASK(&BlockSig);

     pqsignal(SIGHUP, SIGHUP_handler);  /* reread config file and have
                                    * children do same */
    pqsignal(SIGINT, pmdie); /* send SIGTERM and shut down */
    pqsignal(SIGQUIT, pmdie);   /* send SIGQUIT and die */
    pqsignal(SIGTERM, pmdie);   /* wait for children and shut down */
    pqsignal(SIGALRM, SIG_IGN); /* ignored */
    pqsignal(SIGPIPE, SIG_IGN); /* ignored */
    pqsignal(SIGUSR1, sigusr1_handler); /* message from child process */
    pqsignal(SIGUSR2, dummy_handler);  /* unused, reserve for children */
    pqsignal(SIGCHLD, reaper);  /* handle child termination */
    pqsignal(SIGTTIN, SIG_IGN); /* ignored */
    pqsignal(SIGTTOU, SIG_IGN); /* ignored */
    /* ignore SIGXFSZ, so that ulimit violations work like disk full */
#ifdef SIGXFSZ
    pqsignal(SIGXFSZ, SIG_IGN); /* ignored */
#endif

其中pqsignal(SIGCHLD, reaper);是如果发生SINGCHLD信号,就reaper方法处理。这个后面数据库启动的时候会体现。


 

初始化信号句柄调用流程图

  • 大小: 68 KB
0
0
分享到:
评论

相关推荐

    PostgreSQL中文手册9.2

    一、服务器进程的启动和关闭: 一、服务器进程的启动和关闭: 一、服务器进程的启动和关闭: 一、服务器进程的启动和关闭: 一、服务器进程的启动和关闭: 一、服务器进程的启动和关闭: . 50 PostgreSQL PostgreSQL...

    postgresql-42.3.1-API文档-中文版.zip

    Maven坐标:org.postgresql:postgresql:42.3.1; 标签:postgresql、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构...

    postgresql-42.2.5-API文档-中英对照版.zip

    Maven坐标:org.postgresql:postgresql:42.2.5; 标签:postgresql、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和...

    Postgresql存储过程

    存储过程 postgresql postgresql存储过程

    一套C#与PostgreSQL数据库完美结合的实例

    本套程序是在VS2005下C#开发,...在对PostgreSQL数据库进行操作时,用到了如何调用存储过程来完成各项操作。 将App_Data下的数据库文件导入到PostgreSQL 8.3版里面,库名为:HYGL 然后修改web.config中的配置即可使用

    关于PostGreSQL中的存储过程

    关于PostGreSQL中的存储过程 PostGreSQL是一个开源的数据库

    PostgreSQL修炼之道:从小工到专家

    PostgreSQL中国社区资深数据库专家、沃趣科技首席数据库架构师撰写,PostgreSQL数据库领域经典著作 系统讲解PostgreSQL技术内幕,深入分析PostgreSQL特色功能,包含大量来自实际生产环境的经典案例和经验总结 ...

    postgresql-42.2.2-API文档-中文版.zip

    Maven坐标:org.postgresql:postgresql:42.2.2; 标签:postgresql、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构...

    Go-PostgreSQLBGWorker用Go编写的PostgreSQL后台工作进程

    PostgreSQL BGWorker 用Go编写的PostgreSQL后台工作进程

    postgresql-42.2.2-API文档-中英对照版.zip

    Maven坐标:org.postgresql:postgresql:42.2.2; 标签:postgresql、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和...

    postgresql-42.3.3-API文档-中文版.zip

    Maven坐标:org.postgresql:postgresql:42.3.3; 标签:postgresql、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构...

    postgresql-42.2.6-API文档-中文版.zip

    Maven坐标:org.postgresql:postgresql:42.2.6; 标签:postgresql、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构...

    Test-postgresql:积极维护的Test :: postgresql的分支

    Test-postgresql:积极维护的Test :: postgresql的分支

    PostgreSQL 存储过程调试

    NULL 博文链接:https://haige18.iteye.com/blog/1746527

    postgresql数据库jdbc驱动

    postgresql数据库jdbc驱动,jar包。。。。。。。。。。。。

    PostgreSQL 14.1 中文手册

    PostgreSQL 14.1 手册 PostgreSQL 全球开发组 翻译:彭煜玮1,PostgreSQL中文社区2文档翻译组

    postgresql查询死锁以及杀死死锁进程sql.txt

    查询sql的死锁进程,查找并杀死。解决生产数据库中卡死的现象。postgresql查询死锁以及杀死死锁进程sql

    PostgreSQL(postgresql14-llvmjit-14.1-1PGDG.rhel7.x86_64.rpm)

    PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多领先概念只是在比较迟的时候才出现...

    PostgreSQL12.2中文手册.chm.7z

    PostgreSQL12.2中文手册.chm.7z PostgreSQL12.2中文手册.chm.7z

    PostgreSQL 8.2.3 中文文档

    何为 PostgreSQL? PostgreSQL 简史 格式约定 更多信息 臭虫汇报指导 I. 教程 1. 从头开始 2. SQL 语言 3. 高级特性 II. SQL 语言 4. SQL 语法 5. 数据定义 6. 数据操作 7. 查询 8. 数据类型 9. ...

Global site tag (gtag.js) - Google Analytics