FATAL: lock file "postmaster.pid" already exists — Is another postmaster running in data directory?
PostgreSQL won’t start because a stale postmaster.pid file remains (or another instance really is running).
Seen on:
PostgreSQL
Meaning
After a crash or unclean shutdown (common with Homebrew on macOS), the PID file stays behind.
Common causes
- Unclean shutdown/crash
- Another PostgreSQL instance using the same data directory
⚡ Quick fix
- Make sure no postgres process is running (ps aux | grep postgres)
- Then delete the stale postmaster.pid and start again
Detailed fix by platform
Linux
brew services stop postgresql@16 && rm /opt/homebrew/var/postgresql@16/postmaster.pid && brew services start postgresql@16
How to diagnose
- Process — Is postgres running?
- PID — Does the PID in the file exist?
🧠 Still stuck? Analyze your error
Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.
Was this page helpful?
Report a correction or suggest an improvement
Last updated 2 Oct 2026