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进程增加了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值