PostgreSQL が動かない時

久しぶりに PostgreSQL に query を投げてみたら…

psql: could not connect to server: Connection refused
        Is the server running on host hostname and accepting
        TCP/IP connections on port 5432?

…あれ?

# /etc/init.d/postgresql restart
PostgreSQL starting.
/usr/local/pgsql/bin/pg_ctl: kill: permission denied
waiting for postmaster to shut down................................................................ failed
pg_ctl: postmaster does not shut down

がーんん.

pg_ctl status -D で調べると postmaster は走ってると言うのだが,ps で見てもそんなプロセスは走ってない.

ぐぐると,以下のスレッド

にそっくりな事例があった.

たぶんすでに postmaster がいないのでしょう。
ps で確認してみました?
pg_ctl status って ${PGDATA}/postmaster.pid と
${PGDATA}/postmaster.opts を見てるだけみたいなので
正常終了せずに、ファイルが残っていただけなのではないでしょうか?
調べると,確かに ${PGDATA}/postmaster.pid が残っていて,日付が前回のサーバ障害と一致.PID ファイルだけが残っちゃったんだな.

というわけで,PID ファイルをリネームして postgresql restart したらおk.