天天看點

向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>