提交 524b2626 编写于 作者: M Matt Stancliff 提交者: antirez

Add graceful exit when Ctrl-C is received

上级 78bde472
...@@ -3103,10 +3103,21 @@ void redisAsciiArt(void) { ...@@ -3103,10 +3103,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;
} }
...@@ -3117,8 +3128,9 @@ void setupSignalHandlers(void) { ...@@ -3117,8 +3128,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);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册