After the system crash (reboot) the PostgreSQL server does not start because PID file /var/lib/pgsql/data/postmaster.pid is not removed by initscripts at the startup sequence. This is not a fault of initscripts but this is a bug in the default PostgreSQL configuration. The PostgreSQL server should have only one PID file in /var/run/postmaster.<PID>.pid or the second PID file in /var/run/postgresql subdirectory. After this relocation, initscripts should be fixed (postgresql directory added, see line 943 in /etc/rc.d/rc.sysinit). This is a very anoying longstandig bug so please make a REAL fix. When the service does not start after the reboot (when NO other posmaster is able to run) I think something is wrong in the bix complecity of /etc/init.d/postgresql. Also I'm wondering why the hell there are two different same PID files...
AFAIK this has been fixed for months (since postgresql-7.4.5-3 to be specific). You have not provided any details, like say the Postgres version you are using.
As filled above, this is fully up-to-date RHEL4. With OOPSing kernel (probably HW problem).
After a suitable period of contemplation, I have realized that the fix previously applied did not catch all the cases it was intended to :-(. http://archives.postgresql.org/pgsql-hackers/2005-03/msg00619.php Will work on it. It may be too late for RHEL4U1 though.
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHSA-2005-433.html