From 5b4fa959846abf9e95798a39326e56fd7dc27d43 Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Mon, 29 Jan 2007 20:17:40 +0000
Subject: [PATCH] Update process termination message to display signal number
 and name from exec.c and postmaster.c.

---
 src/backend/postmaster/postmaster.c |  9 ++++-----
 src/port/exec.c                     | 13 +++++++++----
 2 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c
index 29271f9e463..43d9212358b 100644
--- a/src/backend/postmaster/postmaster.c
+++ b/src/backend/postmaster/postmaster.c
@@ -37,7 +37,7 @@
  *
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.515 2007/01/28 06:32:03 tgl Exp $
+ *	  $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.516 2007/01/29 20:17:40 momjian Exp $
  *
  * NOTES
  *
@@ -2436,11 +2436,10 @@ LogChildExit(int lev, const char *procname, int pid, int exitstatus)
 		/*------
 		  translator: %s is a noun phrase describing a child process, such as
 		  "server process" */
-				(errmsg("%s (PID %d) was terminated by signal %s (%d)",
-						procname, pid,
+				(errmsg("%s (PID %d) was terminated by signal %d: %s",
+						procname, pid, WTERMSIG(exitstatus),
 						WTERMSIG(exitstatus) < NSIG ?
-						sys_siglist[WTERMSIG(exitstatus)] : "(unknown)",
-						WTERMSIG(exitstatus))));
+						sys_siglist[WTERMSIG(exitstatus)] : "(unknown)")));
 #else
 		ereport(lev,
 
diff --git a/src/port/exec.c b/src/port/exec.c
index 26294cdf4a2..e92dbde1a29 100644
--- a/src/port/exec.c
+++ b/src/port/exec.c
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/port/exec.c,v 1.53 2007/01/28 07:29:32 tgl Exp $
+ *	  $PostgreSQL: pgsql/src/port/exec.c,v 1.54 2007/01/29 20:17:40 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -587,9 +587,14 @@ pclose_check(FILE *stream)
 		log_error(_("child process was terminated by exception 0x%X"),
 				  WTERMSIG(exitstatus));
 #elif defined(HAVE_DECL_SYS_SIGLIST) && HAVE_DECL_SYS_SIGLIST
-		log_error(_("child process was terminated by signal %s"),
-				  WTERMSIG(exitstatus) < NSIG ?
-				  sys_siglist[WTERMSIG(exitstatus)] : "(unknown)");
+	{
+		char str[256];
+
+		snprintf(str, 256, "%d: %s", WTERMSIG(exitstatus),
+			  WTERMSIG(exitstatus) < NSIG ?
+			  sys_siglist[WTERMSIG(exitstatus)] : "(unknown)");
+		log_error(_("child process was terminated by signal %s"), str);
+	}
 #else
 		log_error(_("child process was terminated by signal %d"),
 				  WTERMSIG(exitstatus));
-- 
GitLab