[ 永遠的UNIX::UNIX技術資料的寶庫 ]   GB | BIG5

首頁 > 數據庫 > 其它 > 正文
PostgreSQL7.0手冊-開發者手冊 -65. Postgres 信號
編譯:何偉平 laser@zhengmai.com.cn (2001-04-21 23:36:55)
第六十五章. Postgres 信號
注意:由 Massimo Dal Zotto 提供
Postgres 使用下面的信號用在 postmaster 和 端之間通訊: 
表 65-1. Postgres 信號  
 
 信號 postmaster 動作 服務器動作 
SIGHUP kill(*,sighup) read_pg_options 
SIGINT 退出 取消查詢 
SIGQUIT kill(*,sigterm) handle_warn 
SIGTERM kill(*,sigterm), kill(*,9), 退出 退出 
SIGPIPE 忽略 退出 
SIGUSR1 kill(*,sigusr1), 退出 迅速退出 
SIGUSR2 kill(*,sigusr2) 異步通知 (SI 輸出) 
SIGCHLD reaper 忽略 (存活測試) 
SIGTTIN 忽略   
SIGTTOU 忽略   
SIGCONT 輸出狀態 (dumpstatus)   
SIGFPE   FloatExceptionHandler 

注意:“kill(*,signal)” 表示向所有端發送信號.
與原先的信號控制相比,主要的改變是用 SIGQUIT 代替 SIGHUP 來操作警告,SIGHUP 來重新讀取 pg_options 文件以及對發送給 postmaster 的 SIGHUP,SIGTERM,SIGUSR1 和 SIGUSR2 信號對所有活躍端的重新定向.用這種方法,發送給 postmaster 的這些信號可以自動發送給所有這些端而不需要知道他們的進程號(pid).要停止 postgres 的運行,我們只需要發送一個 SIGTERM 信號給 postmaster,然它就會自動停止所有端的運行. 
SIGUSR2 信號還用防止在某些端長期不處理 SI 緩存造成的 SI 緩存表的溢出.當一個端發現 SI 表到達70%的使用度,它只是向 postmaster 發送一個信號,該信號將喚醒所有空閑的端並且令它們沖刷緩存. 

程序員對信號的典型用法是: 

# stop postgres
kill -TERM $postmaster_pid
# kill all the backends
kill -QUIT $postmaster_pid
# kill only the postmaster
kill -INT $postmaster_pid
# change pg_options
cat new_pg_options > $DATA_DIR/pg_options
kill -HUP $postmaster_pid
# change pg_options only for a backend
cat new_pg_options > $DATA_DIR/pg_options
kill -HUP $backend_pid
cat old_pg_options > $DATA_DIR/pg_options (http://www.fanqiang.com)
    進入【UNIX論壇

相關文章
PostgreSQL7.0手冊-附錄-文檔 (2001-04-21 23:50:44)
PostgreSQL7.0手冊-附錄-日期/時間支持-CVS 倉庫 (2001-04-21 23:48:48)
PostgreSQL7.0手冊-教程 -73. Postgres SQL 高級特性 (2001-04-21 23:45:36)
PostgreSQL7.0手冊-教程 -72. 查詢語言 (2001-04-21 23:44:40)
PostgreSQL7.0手冊-教程 -71. 開始 (2001-04-21 23:42:54)
PostgreSQL7.0手冊-教程 -70. 體系結構 (2001-04-21 23:41:58)
PostgreSQL7.0手冊-教程 -69. SQL (2001-04-21 23:41:23)
PostgreSQL7.0手冊-開發者手冊 -68. 分頁文件 (2001-04-21 23:39:22)
PostgreSQL7.0手冊-開發者手冊 -67. 端接口 (2001-04-21 23:38:34)
PostgreSQL7.0手冊-開發者手冊 -66. gcc 缺省優化 (2001-04-21 23:37:20)

===更多相關===
 

★  樊強制作 歡迎分享  ★