aboutsummaryrefslogtreecommitdiff
path: root/src/backend/postmaster
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/postmaster')
-rw-r--r--src/backend/postmaster/autovacuum.c8
-rw-r--r--src/backend/postmaster/bgworker.c2
-rw-r--r--src/backend/postmaster/pgarch.c6
-rw-r--r--src/backend/postmaster/pgstat.c105
-rw-r--r--src/backend/postmaster/postmaster.c7
-rw-r--r--src/backend/postmaster/syslogger.c3
6 files changed, 18 insertions, 113 deletions
diff --git a/src/backend/postmaster/autovacuum.c b/src/backend/postmaster/autovacuum.c
index a6499fc3da6..da75e755f0f 100644
--- a/src/backend/postmaster/autovacuum.c
+++ b/src/backend/postmaster/autovacuum.c
@@ -433,8 +433,8 @@ AutoVacLauncherMain(int argc, char *argv[])
am_autovacuum_launcher = true;
- /* Identify myself via ps */
- init_ps_display(pgstat_get_backend_desc(B_AUTOVAC_LAUNCHER));
+ MyBackendType = B_AUTOVAC_LAUNCHER;
+ init_ps_display(NULL);
ereport(DEBUG1,
(errmsg("autovacuum launcher started")));
@@ -1506,8 +1506,8 @@ AutoVacWorkerMain(int argc, char *argv[])
am_autovacuum_worker = true;
- /* Identify myself via ps */
- init_ps_display(pgstat_get_backend_desc(B_AUTOVAC_WORKER));
+ MyBackendType = B_AUTOVAC_WORKER;
+ init_ps_display(NULL);
SetProcessingMode(InitProcessing);
diff --git a/src/backend/postmaster/bgworker.c b/src/backend/postmaster/bgworker.c
index 684250984d4..6c684b5e12b 100644
--- a/src/backend/postmaster/bgworker.c
+++ b/src/backend/postmaster/bgworker.c
@@ -688,7 +688,7 @@ StartBackgroundWorker(void)
IsBackgroundWorker = true;
- /* Identify myself via ps */
+ MyBackendType = B_BG_WORKER;
init_ps_display(worker->bgw_name);
/*
diff --git a/src/backend/postmaster/pgarch.c b/src/backend/postmaster/pgarch.c
index 58f54544f60..01ffd6513c7 100644
--- a/src/backend/postmaster/pgarch.c
+++ b/src/backend/postmaster/pgarch.c
@@ -238,10 +238,8 @@ PgArchiverMain(int argc, char *argv[])
pqsignal(SIGCHLD, SIG_DFL);
PG_SETMASK(&UnBlockSig);
- /*
- * Identify myself via ps
- */
- init_ps_display("archiver");
+ MyBackendType = B_ARCHIVER;
+ init_ps_display(NULL);
pgarch_MainLoop();
diff --git a/src/backend/postmaster/pgstat.c b/src/backend/postmaster/pgstat.c
index 107c9653366..f9287b79425 100644
--- a/src/backend/postmaster/pgstat.c
+++ b/src/backend/postmaster/pgstat.c
@@ -2892,62 +2892,7 @@ pgstat_bestart(void)
* out-of-line data. Those have to be handled separately, below.
*/
lbeentry.st_procpid = MyProcPid;
-
- if (MyBackendId != InvalidBackendId)
- {
- if (IsAutoVacuumLauncherProcess())
- {
- /* Autovacuum Launcher */
- lbeentry.st_backendType = B_AUTOVAC_LAUNCHER;
- }
- else if (IsAutoVacuumWorkerProcess())
- {
- /* Autovacuum Worker */
- lbeentry.st_backendType = B_AUTOVAC_WORKER;
- }
- else if (am_walsender)
- {
- /* Wal sender */
- lbeentry.st_backendType = B_WAL_SENDER;
- }
- else if (IsBackgroundWorker)
- {
- /* bgworker */
- lbeentry.st_backendType = B_BG_WORKER;
- }
- else
- {
- /* client-backend */
- lbeentry.st_backendType = B_BACKEND;
- }
- }
- else
- {
- /* Must be an auxiliary process */
- Assert(MyAuxProcType != NotAnAuxProcess);
- switch (MyAuxProcType)
- {
- case StartupProcess:
- lbeentry.st_backendType = B_STARTUP;
- break;
- case BgWriterProcess:
- lbeentry.st_backendType = B_BG_WRITER;
- break;
- case CheckpointerProcess:
- lbeentry.st_backendType = B_CHECKPOINTER;
- break;
- case WalWriterProcess:
- lbeentry.st_backendType = B_WAL_WRITER;
- break;
- case WalReceiverProcess:
- lbeentry.st_backendType = B_WAL_RECEIVER;
- break;
- default:
- elog(FATAL, "unrecognized process type: %d",
- (int) MyAuxProcType);
- }
- }
-
+ lbeentry.st_backendType = MyBackendType;
lbeentry.st_proc_start_timestamp = MyStartTimestamp;
lbeentry.st_activity_start_timestamp = 0;
lbeentry.st_state_start_timestamp = 0;
@@ -4269,48 +4214,6 @@ pgstat_get_crashed_backend_activity(int pid, char *buffer, int buflen)
return NULL;
}
-const char *
-pgstat_get_backend_desc(BackendType backendType)
-{
- const char *backendDesc = "unknown process type";
-
- switch (backendType)
- {
- case B_AUTOVAC_LAUNCHER:
- backendDesc = "autovacuum launcher";
- break;
- case B_AUTOVAC_WORKER:
- backendDesc = "autovacuum worker";
- break;
- case B_BACKEND:
- backendDesc = "client backend";
- break;
- case B_BG_WORKER:
- backendDesc = "background worker";
- break;
- case B_BG_WRITER:
- backendDesc = "background writer";
- break;
- case B_CHECKPOINTER:
- backendDesc = "checkpointer";
- break;
- case B_STARTUP:
- backendDesc = "startup";
- break;
- case B_WAL_RECEIVER:
- backendDesc = "walreceiver";
- break;
- case B_WAL_SENDER:
- backendDesc = "walsender";
- break;
- case B_WAL_WRITER:
- backendDesc = "walwriter";
- break;
- }
-
- return backendDesc;
-}
-
/* ------------------------------------------------------------
* Local support functions follow
* ------------------------------------------------------------
@@ -4447,10 +4350,8 @@ PgstatCollectorMain(int argc, char *argv[])
pqsignal(SIGCHLD, SIG_DFL);
PG_SETMASK(&UnBlockSig);
- /*
- * Identify myself via ps
- */
- init_ps_display("stats collector");
+ MyBackendType = B_STATS_COLLECTOR;
+ init_ps_display(NULL);
/*
* Read in existing stats files or initialize the stats to zero.
diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c
index 46be78aadbf..2b9ab322931 100644
--- a/src/backend/postmaster/postmaster.c
+++ b/src/backend/postmaster/postmaster.c
@@ -2259,6 +2259,11 @@ retry1:
if (strlen(port->user_name) >= NAMEDATALEN)
port->user_name[NAMEDATALEN - 1] = '\0';
+ if (am_walsender)
+ MyBackendType = B_WAL_SENDER;
+ else
+ MyBackendType = B_BACKEND;
+
/*
* Normal walsender backends, e.g. for streaming replication, are not
* connected to a particular database. But walsenders used for logical
@@ -4422,7 +4427,7 @@ BackendInitialize(Port *port)
*/
initStringInfo(&ps_data);
if (am_walsender)
- appendStringInfo(&ps_data, "%s ", pgstat_get_backend_desc(B_WAL_SENDER));
+ appendStringInfo(&ps_data, "%s ", GetBackendTypeDesc(B_WAL_SENDER));
appendStringInfo(&ps_data, "%s ", port->user_name);
if (!am_walsender)
appendStringInfo(&ps_data, "%s ", port->database_name);
diff --git a/src/backend/postmaster/syslogger.c b/src/backend/postmaster/syslogger.c
index b394599236f..3b708c3f670 100644
--- a/src/backend/postmaster/syslogger.c
+++ b/src/backend/postmaster/syslogger.c
@@ -179,7 +179,8 @@ SysLoggerMain(int argc, char *argv[])
am_syslogger = true;
- init_ps_display("logger");
+ MyBackendType = B_LOGGER;
+ init_ps_display(NULL);
/*
* If we restarted, our stderr is already redirected into our own input