天天看点

向bgwriter 发送 SIGQUIT 的实验

bgwriter.c 的代码中有如下部分:

还有:

向bgwriter 发送 SIGQUIT 的实验
向bgwriter 发送 SIGQUIT 的实验

我是这样实验的:

首先个给 bgwriter.c 的 pg_quickdie,加入一小段代码,变成:

向bgwriter 发送 SIGQUIT 的实验
向bgwriter 发送 SIGQUIT 的实验

然后,我启动 postgreSQL ,并查看进程状态:

向bgwriter 发送 SIGQUIT 的实验
向bgwriter 发送 SIGQUIT 的实验

然后,向 bgwriter 发送 SIGQUIT 信号:

[root@localhost postgresql-9.2.0]# kill -s SIGQUIT 2970

这个时候,我们会从pts/1 中看到什么?

向bgwriter 发送 SIGQUIT 的实验
向bgwriter 发送 SIGQUIT 的实验

也就是说,bgwriter 捕获了SIGQUIT 的信号,而Postmaster/postgres 重新启动了各个子进程!

再看 ps 来验证一下:

向bgwriter 发送 SIGQUIT 的实验
向bgwriter 发送 SIGQUIT 的实验

<a></a>

<a>本文转自健哥的数据花园博客园博客,原文链接:http://www.cnblogs.com/gaojian/archive/2012/10/31/2747623.html,如需转载请自行联系原作者</a>