mirror of
https://github.com/fluencelabs/redis
synced 2025-04-01 15:21:03 +00:00
Add graceful exit when Ctrl-C is received
This commit is contained in:
parent
c82e0b701f
commit
d99a7246f8
20
src/redis.c
20
src/redis.c
@ -3399,10 +3399,21 @@ void redisAsciiArt(void) {
|
|||||||
zfree(buf);
|
zfree(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sigtermHandler(int sig) {
|
static void sigShutdownHandler(int sig) {
|
||||||
REDIS_NOTUSED(sig);
|
char *msg;
|
||||||
|
|
||||||
redisLogFromHandler(REDIS_WARNING,"Received SIGTERM, scheduling shutdown...");
|
switch (sig) {
|
||||||
|
case SIGINT:
|
||||||
|
msg = "Received SIGINT scheduling shutdown...";
|
||||||
|
break;
|
||||||
|
case SIGTERM:
|
||||||
|
msg = "Received SIGTERM scheduling shutdown...";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
msg = "Received shutdown signal, scheduling shutdown...";
|
||||||
|
};
|
||||||
|
|
||||||
|
redisLogFromHandler(REDIS_WARNING, msg);
|
||||||
server.shutdown_asap = 1;
|
server.shutdown_asap = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3413,8 +3424,9 @@ void setupSignalHandlers(void) {
|
|||||||
* Otherwise, sa_handler is used. */
|
* Otherwise, sa_handler is used. */
|
||||||
sigemptyset(&act.sa_mask);
|
sigemptyset(&act.sa_mask);
|
||||||
act.sa_flags = 0;
|
act.sa_flags = 0;
|
||||||
act.sa_handler = sigtermHandler;
|
act.sa_handler = sigShutdownHandler;
|
||||||
sigaction(SIGTERM, &act, NULL);
|
sigaction(SIGTERM, &act, NULL);
|
||||||
|
signal(SIGINT, sigShutdownHandler);
|
||||||
|
|
||||||
#ifdef HAVE_BACKTRACE
|
#ifdef HAVE_BACKTRACE
|
||||||
sigemptyset(&act.sa_mask);
|
sigemptyset(&act.sa_mask);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user