格雷格·萨比诺·穆兰:解析Postgres的Postmaster文件

格雷格·萨比诺·穆兰:解析Postgres的Postmaster文件

💡 原文英文,约1200词,阅读约需5分钟。
📝

内容提要

postmaster.pid是Postgres启动时创建的文件,包含父进程PID、数据目录、启动时间、监听端口号、Unix套接字目录、TCP/IP接口、共享内存键和ID以及当前状态。该文件用于判断Postgres是否正在运行。

🎯

关键要点

  • postmaster.pid是Postgres启动时创建的文件,包含父进程PID、数据目录、启动时间、监听端口号等信息。
  • 该文件用于判断Postgres是否正在运行,存在时表示Postgres可能正在运行。
  • postmaster.pid文件包含八行信息,分别是PID、数据目录、启动时间、监听端口、Unix套接字目录、TCP/IP接口、共享内存键和ID、当前状态。
  • 文件名'postmaster'源于Postgres早期版本,虽然主可执行文件现在叫'postgres',但'postmaster'仍在源代码中使用。
  • Postgres在启动过程中创建postmaster.pid文件,其他程序通过检查该文件的存在来判断Postgres是否运行。
  • PID是最常用的信息,可以用于请求Postgres重新加载配置文件。
  • 数据目录信息在postmaster.pid文件中是固定的,通常不太有用。
  • 启动时间以自1970年1月1日以来的秒数表示,可以通过Unix工具转换为人类可读的格式。
  • 监听端口号是Postgres接收连接的端口,默认是5432,可以在配置文件中设置。
  • Unix套接字目录默认是/tmp,可能会因安装方式不同而有所变化。
  • TCP/IP接口的监听地址由listen_addresses参数设置,通常设置为'*'以监听所有接口。
  • 共享内存的键和ID在调试时可能有用,Windows系统中该行可能为空。
  • 最后一行显示Postgres集群的当前状态,通常为'ready',其他状态包括'starting'、'stopping'和'standby'。
  • 如果Postgres未正常关闭,postmaster.pid文件可能仍然存在,但PID可能不再有效,Postgres会在启动时自动删除该文件。
➡️

继续阅读