1. 概述
本文将详细讲解pg_ctl命令停止一个运行中的PG服务的底层实现原理。正文内容将详细分为以下几个点:
- pg_ctl命令停止PG服务的几种方式
- postmaster守护进程是如何知晓pg_ctl命令发出的停止服务请求
- postmaster守护进程如何响应pg_ctl命令的不同停止命令
- postmaster停止服务的详细过程
- postmaster停止服务过程中与哪些文件相关?如何处理
- pg_ctl停止PG服务遇到failed报错,如何应对?
围绕以上几点,从PG V13.2源码角度详细展开讨论本文的主题。
2. pg_ctl命令停止PG服务的几种方式
通常使用pg_ctl命令停止pg服务的方式如下:
su postgres -c '/usr/.../bin/pg_ctl -D /home/.../data -m fast stop --log=/home/.../log/1.log'
即:-m fast stop。 通过pg_ctl --help便可知道,除了fast之外,pg_