postmaster.pid
是由postmaster进程编写的pid文件。除了postmaster的PID之外,它还包含有关正在运行的实例的其他信息。
postmaster.pid
在 PostgreSQL 7.0 中添加。
用法
postmaster.pid
由postmaster进程在启动时自动写入数据目录,并在正常关闭后删除。
如果设置了 external_pid_file
,则会在指定位置写入文件的另一个副本以供操作系统(例如systemd)使用,其中仅包含PID。
内容
项目 | 示例 | 来自 | 备注 |
---|---|---|---|
PID | 17454 | PostgreSQL 7.0 | |
数据目录 | /var/lib/pgsql/data | PostgreSQL 7.1 | |
postmaster启动时间戳 | 1603954420 | PostgreSQL 9.1 | Unix纪元 |
端口号 | 5432 | PostgreSQL 9.1 | |
第一个Unix套接字目录路径 | /tmp | PostgreSQL 9.1 | 如果不存在则为空 |
第一个[listen_addresses|[listen_address]] | 127.0.0.1 | PostgreSQL 9.1 | IP地址或“*”;如果无TCP端口则为空 |
共享内存密钥 | 5432001 9437184 | PostgreSQL 7.1 | 在Windows上为空 |
postmaster状态 | 就绪 | PostgreSQL 10 | starting 、stopping 、ready 、standby 之一 |
请注意,行数及其顺序可能会在PostgreSQL版本之间发生变化。
源代码
文件名在 src/backend/utils/init/miscinit.c 中定义。
#define DIRECTORY_LOCK_FILE "postmaster.pid"
文件本身由函数 CreateLockFile()
创建,该函数由 CreateDataDirLockFile()
调用,同样在 src/backend/utils/init/miscinit.c 中。
相关声明包含在以下文件中
更改历史记录
- PostgreSQL 10
- 添加了包含postmaster状态的附加行(提交 f13ea95f)
- PostgreSQL 9.1
- 添加了包含端口号和套接字目录的行(提交 075354ad)
- 添加了包含第一个 listen_address 和开始时间行(提交 30aeda43)
- PostgreSQL 7.1
- PostgreSQL 7.0
- 添加(提交 dde36bfb)
示例
$ cat /var/lib/pgsql/data/postmaster.pid 17454 /var/lib/pgsql/data 1603954420 5432 /tmp 127.0.0.1 5432001 9437184 ready
有用链接
- Postgres Postmaster 文件详解 - Greg Sabino Mullane / Crunchy Data 于 2024 年 1 月发表的博文
分类
参见
external_pid_file,postmaster