From 839dfda7a90b740c8793818c2a83ba5741bdf847 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Wed, 26 Dec 2001 23:11:49 +0000 Subject: [PATCH] Save the registry before exiting on a SIGTERM. --- server/select.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/server/select.c b/server/select.c index a51feaaa79c..bbd8d2e92c6 100644 --- a/server/select.c +++ b/server/select.c @@ -208,6 +208,13 @@ static void sighup_handler() #endif } +/* SIGTERM handler */ +static void sigterm_handler() +{ + close_registry(); + exit(1); +} + /* server main loop */ void select_loop(void) { @@ -219,6 +226,9 @@ void select_loop(void) sigemptyset( &sigset ); sigaddset( &sigset, SIGCHLD ); sigaddset( &sigset, SIGHUP ); + sigaddset( &sigset, SIGINT ); + sigaddset( &sigset, SIGQUIT ); + sigaddset( &sigset, SIGTERM ); sigprocmask( SIG_BLOCK, &sigset, NULL ); /* set the handlers */ @@ -228,6 +238,10 @@ void select_loop(void) sigaction( SIGCHLD, &action, NULL ); action.sa_handler = sighup_handler; sigaction( SIGHUP, &action, NULL ); + action.sa_handler = sigterm_handler; + sigaction( SIGINT, &action, NULL ); + sigaction( SIGQUIT, &action, NULL ); + sigaction( SIGTERM, &action, NULL ); while (active_users) { -- 2.11.4.GIT