diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index c576986c6b..975b98790d 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -4787,8 +4787,6 @@ SubPostmasterMain(int argc, char *argv[]) /* do this as early as possible; in particular, before InitProcess() */ IsBackgroundWorker = true; - InitPostmasterChild(); - /* Close the postmaster's sockets */ ClosePostmasterPorts(false); @@ -4801,8 +4799,10 @@ SubPostmasterMain(int argc, char *argv[]) /* Attach process to shared data structures */ CreateSharedMemoryAndSemaphores(false, 0); + /* Fetch MyBgworkerEntry from shared memory */ shmem_slot = atoi(argv[1] + 15); MyBgworkerEntry = BackgroundWorkerEntry(shmem_slot); + StartBackgroundWorker(); } if (strcmp(argv[1], "--forkarch") == 0)