On Thu, 18 Mar 2010 09:33:28 +0900
MORITA Kazutaka <[email protected]> wrote:

> Hi,
> 
> On Tue, Mar 16, 2010 at 8:22 PM, Piavlo <[email protected]> wrote:
> > Hi,
> >
> > Now that there is preliminary support for shutdown and restart of sheepdog
> > cluster,
> > i'm wondering what is the correct procedure to restart a cluster after i
> > execute "shepered shutdown"?
> > Do i need to stopĀ  collies on all nodes first with stop-sheepdog and then
> > start then again, or there is a command to activate the cluster
> > without stopping collies first?
> >
> 
> After `shepherd shutdown`, you need to stop all collie processes.

I think that it's more handy if 'shepherd shutdown' stops all the
operations on collie daemons and then kills the daemons.

Here's a patch. It depends on the two patches that I sent recently.

git://git.kernel.org/pub/scm/linux/kernel/git/tomo/sheepdog.git pending

=
From: FUJITA Tomonori <[email protected]>
Subject: [PATCH] collie: shutdown command kills the daemon

Signed-off-by: FUJITA Tomonori <[email protected]>
---
 collie/collie.c |    7 ++++++-
 lib/event.c     |    3 ---
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/collie/collie.c b/collie/collie.c
index 669e894..8367487 100644
--- a/collie/collie.c
+++ b/collie/collie.c
@@ -119,7 +119,12 @@ int main(int argc, char **argv)
 
        vprintf(SDOG_NOTICE "Sheepdog daemon (version %s) started\n", 
SD_VERSION);
 
-       event_loop(-1);
+       while (sys->status != SD_STATUS_SHUTDOWN)
+               event_loop(-1);
+
+       vprintf(SDOG_INFO "shutdown\n");
+
+       log_close();
 
        return 0;
 }
diff --git a/lib/event.c b/lib/event.c
index 38e5d43..e8cd359 100644
--- a/lib/event.c
+++ b/lib/event.c
@@ -167,7 +167,6 @@ void event_loop(int timeout)
        int i, nr;
        struct epoll_event events[128];
 
-retry:
        nr = epoll_wait(efd, events, ARRAY_SIZE(events), TICK * 1000);
        if (nr < 0) {
                eprintf("epoll_wait failed, %m\n");
@@ -181,6 +180,4 @@ retry:
                }
        } else
                do_timer();
-
-       goto retry;
 }
-- 
1.7.0

-- 
sheepdog mailing list
[email protected]
http://lists.wpkg.org/mailman/listinfo/sheepdog

Reply via email to