zoukankan      html  css  js  c++  java
  • PostgreSQL的postmaster的fork动作验证

    postmaster.c 中的BackendStartup(Port *port)函数,其中有如下代码:

    /* in parent, successful fork */                                
    ereport(DEBUG2,                                
            (errmsg_internal("forked new backend, pid=%d socket=%d",                                 (int) pid, port->sock)));  

    为了方便调试,改为:

    /* in parent, successful fork */                                
    ereport(DEBUG2,                                
            (errmsg_internal("forked new backend, pid=%d socket=%d",                                  (int) pid, port->sock)));                                                              
    /* added by gaojian begin */                                
    fprintf(stderr,"forked new backend ,pid =%d ,socket=%d\n", (int)pid, port->sock ); /* added by gaojian end */

    重新编译运行(前台运行):/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start

    开启一个客户端:/usr/local/pgsql/bin/psql -h 192.168.66.133
    此时在pg_ctl 运行的窗口可以看到: forked new backedn, pid=1166,socket=6

    再开一个客户端:/usr/local/pgsql/bin/psql -h 192.168.66.133
    此时在pg_ctl 运行的窗口可以看到: forked new backedn, pid=1255,socket=6

    此时用 ps -ef|grep postgres,也可以看到确实是 pid为 1166 和 1255的 postgres进程增加了。

  • 相关阅读:
    SET TRANSACTION
    SET SESSION AUTHORIZATION
    SET CONSTRAINTS
    SET
    services
    send, sendto, sendmsg
    并列句分析
    cURL 学习笔记与总结(3)模拟登录博客园并下载个人随笔首页
    SQLServer2019安装教程
    Java实现 LeetCode 85 最大矩形
  • 原文地址:https://www.cnblogs.com/gaojian/p/2599124.html
Copyright © 2011-2022 走看看