OSX Mavericks has been crashing randomly recent to me. Just very random. Not quite good because it doesn't give it the chance for processes like Postgres, etc... to shut down properly, leaving process ids (PIDs) behind.
Now got this issue where my postgres won't boot up.
Running postgres manually doesn't work
> pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
> pg_ctl: another server might be running; trying to start server anyway
So here's a quick fix.
- Check the log
$ tail -f /usr/local/var/postgres/server.log
FATAL: lock file "postmaster.pid" already exists
HINT: Is another postmaster (PID 326) running in data directory "/usr/local/var/postgres"?
FATAL: lock file "postmaster.pid" already exists
HINT: Is another postmaster (PID 326) running in data directory "/usr/local/var/postgres"?
- Delete the PID file.
$ rm /usr/local/var/postgres/postmaster.pid
- Run pg_ctl manually
$ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
- Make sure it's running
$ ps x | grep postgres
This should appear from the output above
8352 ?? S 0:00.02 /usr/local/opt/postgresql/bin/postgres -D /usr/local/var/postgres -r /usr/local/var/postgres/server.log
8354 ?? Ss 0:00.00 postgres: checkpointer process
8355 ?? Ss 0:00.03 postgres: writer process
8356 ?? Ss 0:00.01 postgres: wal writer process
8357 ?? Ss 0:00.00 postgres: autovacuum launcher process
8358 ?? Ss 0:00.00 postgres: stats collector process
Also, this also happens to other processes like mongodb or anything that relies on PID files.