{"Entry":{"collection":"guc","key":"external_pid_file","name":"external_pid_file","aliases":[],"metadata":{"baseline":false,"boot_human":"Not specified","boot_val":null,"category":"File Locations","category_zh":"","changed_in":[],"changes":[{"documentation_changed":false,"fields":{},"from":"7.4","status":"added","to":"8.0"},{"documentation_changed":true,"fields":{},"from":"8.1","status":"changed","to":"8.2"},{"documentation_changed":true,"fields":{},"from":"9.0","status":"changed","to":"9.1"}],"content_hash":"e35d371b98d81c36e157e38edc05e945f39983ac942732802e955543ee5a7f16","context":"","default_changed_in":[],"default_history":[{"from":"9.0","to":"19","value":"Not specified"}],"editorial":{"advice":{"olap":"Follow the OLTP rule, and for separate mounts also verify boot ordering, backup coverage, and path consistency on failover nodes.","oltp":"external_pid_file is deployment topology, not workload tuning. Use an absolute path, least privilege, and atomic configuration rollout; verify access as the postgres service account before restart/reload.","small":"The default co-located layout is simplest. Split paths only for a concrete backup, packaging, or permission-isolation benefit."},"mechanism":["Writes the postmaster PID to the specified file. The value is fixed when the server starts, so changing it requires a restart.","At startup PostgreSQL writes the postmaster PID to this additional path for external service tooling. postmaster.pid in the data directory remains authoritative for server internals, and the external file must not be used as the sole proof that a process is the intended cluster.","Monitor and change external_pid_file together with allow_alter_system, config_file, data_directory. Validate on the relevant server role and real workload, then use its postmaster context to choose session change, reload, or restart; a historical boot default is not the current effective value."],"pitfalls":["Missing directory traversal, read, or write permission for the service account.","Confusing restart requirements for a path with reload behavior of the selected file contents.","Omitting the path on a failover node or from backup inventory.","Using a relative path that depends on an unstable working directory."],"references":[{"title":"PostgreSQL 19 Beta 4: external_pid_file","url":"https://www.postgresql.org/docs/19/runtime-config-file-locations.html#GUC-EXTERNAL-PID-FILE"},{"title":"PostgreSQL 19 release notes","url":"https://www.postgresql.org/docs/19/release-19.html"}],"related":["allow_alter_system","config_file","data_directory","hba_file","ident_file","extension_destdir"],"summary":"external_pid_file — Writes the postmaster PID to the specified file. Observed in PG9.0–19 Beta 4; its last measured boot default is not set in PG19 Beta 4, with postmaster context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA."},"enumvals":[],"first_version":"8.0","group":"File Locations","group_slug":"file-locations","imported_at":"2026-09-27T17:57:31.270427+08:00","intro_commit":{},"key":"external_pid_file","last_version":"20","max_val":"","min_val":"","name":"external_pid_file","position":145,"present_in":["8.0","8.1","8.2","8.3","8.4","9.0","9.1","9.2","9.3","9.4","9.5","9.6","10","11","12","13","14","15","16","17","18","19","20"],"short_desc":"Specifies the name of an additional process-ID (PID) file that the server should create for use by server administration programs.","short_desc_zh":"","source_rev":"english-manuals:8a4a555adb2fd137f83de2b13d56ed9887aa549aac4067e7af748786227d898f","unit":"","vartype":"string"}},"Definition":{"Collection":"guc","Key":"external_pid_file","SourceDatabase":"center","Version":"18","SourceTable":"guc","SourceKey":"external_pid_file","SourceRevision":"english-manuals:8a4a555adb2fd137f83de2b13d56ed9887aa549aac4067e7af748786227d898f","Facts":{"boot_val":null,"category":"File Locations","context":"postmaster","description":"Specifies the name of an additional process-ID (PID) file that the server should create for use by server administration programs. This parameter can only be set at server start.","doc":{"anchor":"GUC-EXTERNAL-PID-FILE","file":"runtime-config-file-locations.html","lang":"en","sha256":"d32b4a6043ad0ec1a0b4d476f80aa279be0a3491176860e0d2f2439eddf612ad","slug":"18"},"documented":true,"enumvals":null,"extra_desc":null,"lang":"en","max_val":null,"metadata_version":"18","min_val":null,"name":"external_pid_file","short_desc":"Writes the postmaster PID to the specified file.","source":"pg-settings-source-snapshot","unit":null,"vartype":"string"},"ManualEvidence":{"doc":{"anchor":"GUC-EXTERNAL-PID-FILE","file":"runtime-config-file-locations.html","lang":"en","sha256":"d32b4a6043ad0ec1a0b4d476f80aa279be0a3491176860e0d2f2439eddf612ad","slug":"18"}},"MeasuredEvidence":{"metadata_version":"18"}},"Text":{"Collection":"guc","Key":"external_pid_file","SourceDatabase":"center","Version":"18","Locale":"en","Title":"external_pid_file","Summary":"Specifies the name of an additional process-ID (PID) file that the server should create for use by server administration programs. This parameter can only be set at server start.","BodyHTML":"\u003cp\u003eSpecifies the name of an additional process-ID (PID) file that the server should create for use by server administration programs. This parameter can only be set at server start.\u003c/p\u003e","SourceRevision":"english-manuals:8a4a555adb2fd137f83de2b13d56ed9887aa549aac4067e7af748786227d898f","ContentHash":"9b9d36c18dec54207b8edcef6eb14b51a3c73579bca5feadf7b1b4837c03a857","Payload":{"description":"Specifies the name of an additional process-ID (PID) file that the server should create for use by server administration programs. This parameter can only be set at server start."}},"RequestedLocale":"zh-Hans","Fallback":true,"Versions":["10","11","12","13","14","15","16","17","18","19","20","8.0","8.1","8.2","8.3","8.4","9.0","9.1","9.2","9.3","9.4","9.5","9.6"],"Locales":["en"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
