Thread: multiple postgres processes after establishing tcp connection
Hello,
--
PostgreSQL 9.4.4 started in usual way
[postgres@ubuntu12-vm][20150731 06:26:06]:/db2/master$ pg_ctl start -D /db2/master/ -l serverlog
server starting
I can see root process for this then:
[postgres@ubuntu12-vm][20150731 06:38:36]:/db2/master$ ps -ef | grep "bin/postgres" | grep -v grep
postgres 5152 1 0 06:28 pts/0 00:00:00 /opt/postgres/9.4.4/bin/postgres -D /db2/master
If only simple telnet connection started:
[postgres@ubuntu12-vm][20150731 06:30:24]:/db2$ telnet 127.0.0.1 5551
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
new postgres process appeared as a child of the first one.
[postgres@ubuntu12-vm][20150731 06:38:42]:/db2/master$ ps -ef | grep "bin/postgres" | grep -v grep
postgres 5152 1 0 06:28 pts/0 00:00:00 /opt/postgres/9.4.4/bin/postgres -D /db2/master
postgres 6358 5152 0 06:39 ? 00:00:00 /opt/postgres/9.4.4/bin/postgres -D /db2/master
Is this an attempt to create new worker?
No records (presumably) in pg_stat_activity, only "invalid length of startup packet" after closing telnet session.
Regards, Andrey Lizenko
On 7/31/15 5:52 AM, Andrey Lizenko wrote: > If only simple telnet connection started: > > [postgres@ubuntu12-vm][20150731 06:30:24]:/db2$ telnet 127.0.0.1 5551 > Trying 127.0.0.1... > Connected to 127.0.0.1. > Escape character is '^]'. > > new postgres process appeared as a child of the first one. > > [postgres@ubuntu12-vm][20150731 06:38:42]:/db2/master$ ps -ef | grep > "bin/postgres" | grep -v grep > postgres 5152 1 0 06:28 pts/0 00:00:00 > /opt/postgres/9.4.4/bin/postgres -D /db2/master > postgres 6358 5152 0 06:39 ? 00:00:00 > /opt/postgres/9.4.4/bin/postgres -D /db2/master > > > > Is this an attempt to create new worker? > No records (presumably) in pg_stat_activity, only "invalid length of > startup packet" after closing telnet session. To be expected. There's a bunch of startup stuff that happens before a backend shows up in pg_stat_activity. See BackendStartup() for details. In particular, BackendInitialize() is what collects the startup packet from the port before calling BackendRun() which calls PostgresMain() which is what finally registers the backend in the proc array. -- Jim Nasby, Data Architect, Blue Treble Consulting, Austin TX Data in Trouble? Get it in Treble! http://BlueTreble.com