Jan Rybar ff1b03
diff -up ./ps/display.c.ori ./ps/display.c
Jan Rybar ff1b03
--- ./ps/display.c.ori	2021-02-09 11:11:25.000000000 +0100
Jan Rybar ff1b03
+++ ./ps/display.c	2022-11-29 18:39:13.254573784 +0100
Jan Rybar ff1b03
@@ -44,6 +44,8 @@
Jan Rybar ff1b03
 #define SIGCHLD SIGCLD
Jan Rybar ff1b03
 #endif
Jan Rybar ff1b03
 
Jan Rybar ff1b03
+#define SIG_IS_TERM_OR_HUP(signo) (((signo) == SIGTERM) || (signo) == SIGHUP)
Jan Rybar ff1b03
+
Jan Rybar ff1b03
 char *myname;
Jan Rybar ff1b03
 
Jan Rybar ff1b03
 /* just reports a crash */
Jan Rybar ff1b03
@@ -54,20 +56,23 @@ static void signal_handler(int signo){
Jan Rybar ff1b03
   sigprocmask(SIG_BLOCK, &ss, NULL);
Jan Rybar ff1b03
   if(signo==SIGPIPE) _exit(0);  /* "ps | head" will cause this */
Jan Rybar ff1b03
   /* fprintf() is not reentrant, but we _exit() anyway */
Jan Rybar ff1b03
-  fprintf(stderr,
Jan Rybar ff1b03
-    _("Signal %d (%s) caught by %s (%s).\n"),
Jan Rybar ff1b03
-    signo,
Jan Rybar ff1b03
-    signal_number_to_name(signo),
Jan Rybar ff1b03
-    myname,
Jan Rybar ff1b03
-    PACKAGE_VERSION
Jan Rybar ff1b03
-  );
Jan Rybar ff1b03
+  if (!SIG_IS_TERM_OR_HUP(signo)) {
Jan Rybar ff1b03
+    fprintf(stderr,
Jan Rybar ff1b03
+      _("Signal %d (%s) caught by %s (%s).\n"),
Jan Rybar ff1b03
+      signo,
Jan Rybar ff1b03
+      signal_number_to_name(signo),
Jan Rybar ff1b03
+      myname,
Jan Rybar ff1b03
+      PACKAGE_VERSION
Jan Rybar ff1b03
+    );
Jan Rybar ff1b03
+  }
Jan Rybar ff1b03
   switch (signo) {
Jan Rybar ff1b03
     case SIGHUP:
Jan Rybar ff1b03
     case SIGUSR1:
Jan Rybar ff1b03
     case SIGUSR2:
Jan Rybar ff1b03
       exit(EXIT_FAILURE);
Jan Rybar ff1b03
     default:
Jan Rybar ff1b03
-      error_at_line(0, 0, __FILE__, __LINE__, "%s", _("please report this bug"));
Jan Rybar ff1b03
+      if (!SIG_IS_TERM_OR_HUP(signo))
Jan Rybar ff1b03
+        error_at_line(0, 0, __FILE__, __LINE__, "%s", _("please report this bug"));
Jan Rybar ff1b03
       signal(signo, SIG_DFL);  /* allow core file creation */
Jan Rybar ff1b03
       sigemptyset(&ss);
Jan Rybar ff1b03
       sigaddset(&ss, signo);