After updating postgresql-server to 8.4.4-r1 the init script is unable to either start or stop the server. (Actually, it can start it, but it thinks that it failed and therefore fails to update rc, making it impossible to use the init script to stop it, or to start anything which depends on postgresql-server.) Manually installing the postgresql.init-8.4 file as /etc/init.d/postgresql-8.4 works as a fix. The ebuild version is: # $Header: /var/cvsroot/gentoo-x86/dev-db/postgresql-server/postgresql-server-8.4.4-r1.ebuild,v 1.1 2010/06/04 14:18:53 patrick Exp $
Make sure the server is idle and no connections are open. Kill it manually. If the server was started with the old script, the new script can't really kill it. Or start it. There's no real explanation for this that I've found as the same client is being used to handle the server in the new script as the old script. After that, the new script should be able to handle it just fine. Additionally, ensure that you have local sockets as an allowed means of communication. The method allowed doesn't seem to matter, just the media.
This looks like a one-off failure when upgrading, switching to the new init scripts, while the server is running. Once you stop the server with pg_ctl you can start it again, so I don't see what we can do to fix it.