]> prime8.dev >> repos - ttyd.git/commitdiff
Force exit program for the second ^C
authorShuanglei Tao <tsl0922@gmail.com>
Tue, 20 Sep 2016 12:08:03 +0000 (20:08 +0800)
committerShuanglei Tao <tsl0922@gmail.com>
Tue, 20 Sep 2016 12:08:03 +0000 (20:08 +0800)
src/server.c

index d1d0b35ef0f20be3f1ffda8895466ac292a36809..8022a05a08d9910b0b5e74d63c56014e74a75798 100644 (file)
@@ -93,11 +93,15 @@ tty_server_new(int argc, char **argv) {
 
 void
 sig_handler(int sig) {
+    if (force_exit)
+        exit(EXIT_FAILURE);
+
     char sig_name[20];
     get_sig_name(sig, sig_name);
-    lwsl_notice("received signal: %s (%d)\n", sig_name, sig);
+    lwsl_notice("received signal: %s (%d), exiting...\n", sig_name, sig);
     force_exit = true;
     lws_cancel_service(context);
+    lwsl_notice("send ^C to force exit.\n");
 }
 
 int
@@ -266,7 +270,8 @@ main(int argc, char **argv) {
 #endif
     }
 
-    signal(SIGINT, sig_handler);
+    signal(SIGINT, sig_handler);  // ^C
+    signal(SIGTERM, sig_handler); // kill
 
     context = lws_create_context(&info);
     if (context == NULL) {