summaryrefslogtreecommitdiff
path: root/managemon.c
diff options
context:
space:
mode:
Diffstat (limited to 'managemon.c')
-rw-r--r--managemon.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/managemon.c b/managemon.c
index 730334cd..a8af614a 100644
--- a/managemon.c
+++ b/managemon.c
@@ -555,7 +555,7 @@ static void handle_message(struct supertype *container, struct metadata_update *
manage(mdstat, container);
free_mdstat(mdstat);
- } else {
+ } else if (!sigterm) {
mu = malloc(sizeof(*mu));
mu->len = msg->len;
mu->buf = msg->buf;
@@ -612,6 +612,7 @@ void do_manager(struct supertype *container)
sigdelset(&set, SIGUSR1);
sigdelset(&set, SIGHUP);
sigdelset(&set, SIGALRM);
+ sigdelset(&set, SIGTERM);
proc_fd = open("/proc/mounts", O_RDONLY);
do {
@@ -647,6 +648,9 @@ void do_manager(struct supertype *container)
manager_ready = 1;
+ if (sigterm)
+ wakeup_monitor();
+
if (update_queue == NULL) {
if (container->sock < 0)
mdstat_wait_fd(proc_fd, &set);