Here's ps output, as you can see there is a second postmaster (pid 17303) that is a child of the original postmaster (pid 28317): prod 28317 1 0 Feb25 ? 00:00:02 /mnt/prod/postgresql-8.1.2/bin/postmaster -i prod 28321 28317 0 Feb25 ? 00:00:11 postgres: logger process prod 28323 28317 0 Feb25 ? 00:02:32 postgres: writer process prod 28324 28317 0 Feb25 ? 00:00:00 postgres: archiver process prod 28325 28317 0 Feb25 ? 00:00:05 postgres: stats buffer process prod 28326 28325 0 Feb25 ? 00:00:11 postgres: stats collector process prod 13571 28317 0 09:19 ? 00:00:00 postgres: pos abdb host.x.y.net(33623) idle prod 16214 28317 5 10:05 ? 00:00:46 postgres: pos abdb 10.123.45.79(4232) idle prod 16268 28317 0 10:05 ? 00:00:00 postgres: pos abdb 10.123.45.79(4237) idle prod 16328 28317 0 10:06 ? 00:00:05 postgres: pos xyzdb 10.123.45.79(4245) idle prod 17303 28317 0 10:19 ? 00:00:00 /mnt/prod/postgresql-8.1.2/bin/postmaster -i Viewing this as a tree (ps aefx) makes it a little more obvious: 28317 ? S 0:02 /mnt/prod/postgresql-8.1.2/bin/postmaster -i HOSTNAME=host1 TERM=xterm SHE 28321 ? S 0:11 \_ postgres: logger process 28323 ? S 2:32 \_ postgres: writer process 28324 ? S 0:00 \_ postgres: archiver process 28325 ? S 0:05 \_ postgres: stats buffer process 28326 ? S 0:11 | \_ postgres: stats collector process 13571 ? S 0:00 \_ postgres: pos abdb host.x.y.net(33623) idle 16214 ? S 0:46 \_ postgres: pos abdb 10.123.45.79(4232) idle 16268 ? S 0:00 \_ postgres: pos abdb 10.123.45.79(4237) idle 16328 ? S 0:05 \_ postgres: pos xyzdb 10.123.45.79(4245) idle 17327 ? S 0:00 \_ /mnt/prod/postgresql-8.1.2/bin/postmaster -i HOSTNAME=host1 TERM=xterm Wait a sec...looking at the above I just noticed that the process id of the second postmaster in the first 'ps' output listing is different from the pid in the tree listing. At the time this second postmaster appeared, there were a lot of connections to the database being attempted (and rejected due to pg_hba.conf configuration). Perhaps I'm just seeing a moment-in-time snapshot of the postmaster fork()'ing to handle these connections, but because they were rejected, it never had time to rename itself to 'postgres'? Stuart -----Original Message----- From: Tom Lane [mailto:tgl@xxxxxxxxxxxxx] Sent: Monday, February 27, 2006 10:09 PM To: Michael Fuhr Cc: Stock, Stuart; pgsql-general@xxxxxxxxxxxxxx Subject: Re: [GENERAL] How many postmasters should be running? Michael Fuhr <mike@xxxxxxxx> writes: > On Mon, Feb 27, 2006 at 09:05:51PM -0500, Stock, Stuart wrote: >> A few minutes ago, we were surprised to find a second postmaster process >> running on our database machine as a child of the original postmaster. > Each connection causes the postmaster to fork a new process to > handle that connection. Also, all postmaster child processes will properly identify themselves as long as you are using the appropriate ps options. (Depending on your OS, the default ps output format might just list them all as "postmaster".) Try something like "ps auxww | grep postgres" if using Linux. regards, tom lane If you have received this e-mail in error or wish to read our e-mail disclaimer statement and monitoring policy, please refer to http://www.drkw.com/disc/email/ or contact the sender.