bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] console-client: Exit on SIGTERM


From: David Michael
Subject: [PATCH] console-client: Exit on SIGTERM
Date: Wed, 16 Jul 2014 21:56:36 -0400

* console-client/console.c: Include signal.h.
(signal_handler): New function.
(main): Register signal_handler to trap SIGTERM.
---

Hi,

I've been fiddling with running the console client as a system service
so it can be started and stopped with, e.g., "deco stop console" or
"service console start".

Could it have a signal handler added so the client exits cleanly on the
SIGTERM from these stop commands?  It seems to lock up the display
without this.

Thanks.

David

 console-client/console.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/console-client/console.c b/console-client/console.c
index 2fa0533..4035ebf 100644
--- a/console-client/console.c
+++ b/console-client/console.c
@@ -18,6 +18,7 @@
 
 #include <argp.h>
 #include <errno.h>
+#include <signal.h>
 #include <stdio.h>
 #include <unistd.h>
 #include <string.h>
@@ -290,6 +291,14 @@ console_exit (void)
   exit (0);
 }
 
+/* Exit the console client on SIGTERM. */
+static void
+signal_handler (int signum)
+{
+  if (signum == SIGTERM)
+    console_exit ();
+}
+
 /* Signal an error to the user.  */
 void console_error (const wchar_t *const err_msg)
 {
@@ -744,6 +753,9 @@ main (int argc, char *argv[])
   if (console_node)
     console_setup_node (console_node);
 
+  if (signal (SIGTERM, signal_handler) == SIG_ERR)
+    daemon_error (1, errno, "Could not register a SIGTERM handler");
+
 #if HAVE_DAEMON
   if (daemonize)
     /* Signal parent that all went well.  */
-- 
1.9.3




reply via email to

[Prev in Thread] Current Thread [Next in Thread]