Lưu ý:Được đóng góp bởiMassimo Dal Zotto
kèo bóng đá phápSử dụng các mục sau Tín kèo bóng đá pháp để giao tiếp giữa người bán bưu điện và phụ trợ:
Bảng 60-1.kèo bóng đá phápTín kèo bóng đá pháp
Tín kèo bóng đá pháp | PostmasterHành động | Hành động máy chủ |
---|---|---|
SIGHUP | Kill (*, Sightup) | read_pg_options |
Sigint | Die | Hủy truy vấn |
Sigquit | Kill (*, Sigterm) | tay cầm_warn |
sigterm | KILL chết | Die |
Sigpipe | bị bỏ qua | Die |
Sigusr1 | Kill (*, Sigusr1), Die | QuickDie |
sigusr2 | KILL (*, SIGUSR2) | Async Thông báo (SI Flush) |
sigchld | Reaper | Bỏ qua (kiểm tra còn sống) |
Sigttin | bị bỏ qua | |
Sigttou | bị bỏ qua | |
SigCont | DumpStatus | |
Sigfpe | FloateXceptionHandler |
Lưu ý:Tiêu diệt (*, tín kèo bóng đá pháp) có nghĩa là gửi tín kèo bóng đá pháp cho tất cả phụ trợ.
Thay đổi chính đối với xử lý tín kèo bóng đá pháp cũ là việc sử dụng Sigquit thay vì thở dài để xử lý các cảnh báo, hãy thở dài để đọc lại Tệp pg_options và chuyển hướng đến tất cả các phụ trợ hoạt động của Sighup, Sigterm, Sigusr1 và Sigusr2 được gửi đến bưu điện. TRONG Bằng cách này, những tín kèo bóng đá pháp này được gửi đến bưu điện có thể được gửi Tự động cho tất cả các phụ trợ mà không cần phải biết PID của họ. Để đóng cửa Postgres, người ta chỉ cần gửi Sigterm đến Postmaster và nó sẽ tự động dừng tất cả các phụ trợ.
Tín kèo bóng đá pháp SIGUSR2 cũng được sử dụng để ngăn chặn bảng bộ đệm SI tràn xảy ra khi một số phụ trợ không xử lý bộ đệm SI trong một thời gian dài. Khi một phụ trợ phát hiện bảng SI đầy đủ ở mức 70% Nó chỉ đơn giản là gửi một tín kèo bóng đá pháp đến người nhận bưu điện sẽ đánh thức tất cả phụ trợ không hoạt động và làm cho chúng xả bộ đệm.
Việc sử dụng tín kèo bóng đá pháp điển hình của các lập trình viên có thể là tiếp theo:
# Dừng kèo bóng đá pháp KILL -TERM $ POSTMASTER_PID
# Giết tất cả các phụ trợ Giết -Quit $ postmaster_pid
# Chỉ giết người bưu điện Giết -INT $ POSTMASTER_PID
# Thay đổi pg_options CAT new_pg_options $ data_dir/pg_options giết -hup $ postmaster_pid
# Thay đổi pg_options chỉ cho một phụ trợ CAT new_pg_options $ data_dir/pg_options Giết -hup $ backend_pid CAT Old_PG_Options $ data_dir/pg_options