On Thu, 18 Mar 2010 09:33:28 +0900 MORITA Kazutaka <morita.kazutaka at lab.ntt.co.jp> wrote: > Hi, > > On Tue, Mar 16, 2010 at 8:22 PM, Piavlo <piavka at cs.bgu.ac.il> 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 <fujita.tomonori at lab.ntt.co.jp> Subject: [PATCH] collie: shutdown command kills the daemon Signed-off-by: FUJITA Tomonori <fujita.tomonori at lab.ntt.co.jp> --- 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 |