# patroni.postgresql.postmaster module

class patroni.postgresql.postmaster.PostmasterProcess(pid: int)

  Bases: `Process`

  __init__(pid: int) → None
  classmethod _from_pidfile(data_dir: str) → PostmasterProcess | None
  _is_postmaster_process() → bool
  static _read_postmaster_pidfile(data_dir: str) → Dict[str, str]

    Reads and parses postmaster.pid from the data directory

    :returns dictionary of values if successful, empty dictionary otherwise

  classmethod from_pid(pid: int) → PostmasterProcess | None
  static from_pidfile(data_dir: str) → PostmasterProcess | None
  pg_ctl_kill(mode: str, pg_ctl: str) → bool | None
  signal_kill() → bool

    to suspend and kill postmaster and all children

    :returns True if postmaster and children are killed, False if error

  signal_stop(mode: str, pg_ctl: str = 'pg_ctl') → bool | None

    Signal postmaster process to stop

    :returns None if signaled, True if process is already gone, False if error

  static start(pgcommand: str, data_dir: str, conf: str, options: List[str]) → PostmasterProcess | None
  wait_for_user_backends_to_close(stop_timeout: float | None) → bool | None

    Wait for all user backend processes to close before the postmaster shuts down.

    Auxiliary/background PostgreSQL processes (archiver, checkpointer, wal senders, logical replication workers, and so on) are identified via their command line and excluded, so that only genuine client backends are awaited.

    Parameters:

      stop_timeout – maximum number of seconds to wait for the user backends to close. If `None`, wait indefinitely.

    Returns:

      `True` if there were no user backends or all of them closed in time; `None` if the list of children could not be retrieved or some backends were still alive after stop_timeout.

patroni.postgresql.postmaster.pg_ctl_start(conn: Connection, cmdline: List[str], env: Dict[str, str]) → None