19.5. 서버 종료#

데이터베이스 서버를 윈 토토하는 몇 가지 방법이 있습니다. 후드 아래에서, 그들은 모두 감독자에게 신호를 보내는 것을 줄입니다Postgres프로세스.

사전 포장 된 버전의를 사용하는 경우PostgreSQL및 서버를 시작하는 데 조항을 사용한 다음 서버를 중지하기 위해 해당 조항을 사용해야합니다. 자세한 내용은 패키지 수준 문서를 참조하십시오.

서버를 직접 관리 할 때에 다른 신호를 전송하여 윈 토토 유형을 제어 할 수 있습니다.Postgres프로세스 :

sigterm

이것이스마트 셧다운모드. 받은 후sigterm, 서버는 새로운 연결을 방해하지만 기존 세션이 정상적으로 작업을 끝내도록합니다. 모든 세션이 윈 토토 된 후에 만 ​​윈 토토됩니다.

Sigint

이것이빠른 셧다운모드. 서버는 새로운 연결을 무시하고 모든 기존 서버 프로세스를 보냅니다sigterm, 이로 인해 현재 거래를 중단하고 즉시 종료 할 수 있습니다. 그런 다음 모든 서버 프로세스가 종료 될 때까지 기다렸다가 마지막으로 종료됩니다.

Sigquit

이것이즉시 셧다운모드. 서버가 전송됩니다Sigquit모든 아동 과정을 위해 윈 토토 될 때까지 기다립니다. 5 초 이내에 윈 토토되지 않으면 전송됩니다Sigkill. 감독자 서버 프로세스는 정상적인 데이터베이스 윈 토토 처리를 수행하지 않고 모든 아동 프로세스가 윈 토토 되 자마자 윈 토토됩니다.

thePG_CTL프로그램은 서버를 윈 토토하기 위해 이러한 신호를 보내는 편리한 인터페이스를 제공합니다. 또는를 사용하여 직접 신호를 보낼 수 있습니다.비 창 시스템에서. 그만큼PIDPostgres프로세스는를 사용하여 찾을 수 있습니다PS프로그램 또는 파일에서postmaster.pid데이터 디렉토리에서. 예를 들어 빠른 윈 토토를하려면 :

$ kill -int`head -1/usr/local/pgsql/data/postmaster.pid`

중요

사용하지 않는 것이 가장 좋습니다Sigkill서버를 윈 토토하려면. 그렇게하면 서버가 공유 메모리와 세마포어를 공개하지 못하게됩니다.Sigkill죽인Postgres신호를 하위 프로세스로 릴레이하지 않고 프로세스하므로 개별 하위 프로세스를 손으로 죽일 필요가있을 수 있습니다..

다른 세션이 계속되면서 개별 세션을 윈 토토하려면pg_terminate_backend ()(참조표 9.90) 또는 a 보내기sigterm세션과 관련된 아동 프로세스에 대한 신호.

정정 제출

문서에 올바른 것이 없다면 일치하지 않습니다.이 양식문서 문제를보고하려면