PostgreSQL processes and the signals to which they respond

Solution 1:

Older versions of Postgres used signals for more things. I'm writing about the newly-released 8.4 here, and it also applies to 8.3. If you're looking for info on an older version, update your question accordingly.

Postgres 8.3's "postmaster" will terminate when receiving signals SIGTERM, SIGINT, and SIGQUIT. Like any process, you can kill it with SIGKILL, but that causes an unclean shutdown and can damage the database so it should be avoided. You shouldn't go shooting SIGQUITs at postmaster processes, either, because that can be interpreted as a crash by child postmaster processes. You really should be using pg_ctl to start / stop postmaster, though.

SIGHUP causes postmaster to re-read its configuration files (as is typical with a lot of Unix-style apps). You'd have to SIGHUP every running postmaster process if you want them all to re-read their configuraiton files.

See http://www.postgresql.org/docs/8.4/static/app-postgres.html for more details.