int torture;
const char *logfile;
const char *events;
+ int recovery_daemon;
} ctdb_cmdline = {
.nlist = NULL,
.transport = "tcp",
.db_dir = NULL,
.torture = 0,
.logfile = NULL,
+ .recovery_daemon = 0,
};
enum {OPT_EVENTSYSTEM=1};
{ "socket", 0, POPT_ARG_STRING, &ctdb_cmdline.socketname, 0, "local socket name", "filename" },
{ "transport", 0, POPT_ARG_STRING, &ctdb_cmdline.transport, 0, "protocol transport", NULL },
{ "self-connect", 0, POPT_ARG_NONE, &ctdb_cmdline.self_connect, 0, "enable self connect", "boolean" },
+ { "recovery-daemon", 0, POPT_ARG_NONE, &ctdb_cmdline.recovery_daemon, 0, "enable recovery daemon", "boolean" },
{ "debug", 'd', POPT_ARG_INT, &LogLevel, 0, "debug level"},
{ "dbdir", 0, POPT_ARG_STRING, &ctdb_cmdline.db_dir, 0, "directory for the tdb files", NULL },
{ "torture", 0, POPT_ARG_NONE, &ctdb_cmdline.torture, 0, "enable nastiness in library", NULL },
if (ctdb_cmdline.torture) {
ctdb_set_flags(ctdb, CTDB_FLAG_TORTURE);
}
+ if (ctdb_cmdline.recovery_daemon) {
+ ctdb_set_flags(ctdb, CTDB_FLAG_RECOVERY);
+ }
ret = ctdb_set_transport(ctdb, ctdb_cmdline.transport);
if (ret == -1) {
ctdb->ev = event_context_init(NULL);
fde = event_add_fd(ctdb->ev, ctdb, ctdb->daemon.sd, EVENT_FD_READ|EVENT_FD_AUTOCLOSE,
ctdb_accept_client, ctdb);
+
+ /* start the recovery daemon */
+ if (ctdb->flags & CTDB_FLAG_RECOVERY) {
+ char cmdstr[256];
+
+ sprintf(cmdstr, "ctdb_recoverd --socket=%s &",domain_socket_name);
+ system(cmdstr);
+ }
+
ctdb_main_loop(ctdb);
return 0;
#!/bin/sh
killall -q ctdbd
-killall -q recoverd
+killall -q ctdb_recoverd
echo "Starting 4 ctdb daemons"
-bin/ctdbd --nlist direct/4nodes.txt
-bin/ctdbd --nlist direct/4nodes.txt --listen=127.0.0.2:9001 --socket=/tmp/ctdb.socket.127.0.0.2
-bin/ctdbd --nlist direct/4nodes.txt --listen=127.0.0.3:9001 --socket=/tmp/ctdb.socket.127.0.0.3
-bin/ctdbd --nlist direct/4nodes.txt --listen=127.0.0.4:9001 --socket=/tmp/ctdb.socket.127.0.0.4
-echo "Starting one recovery daemon on node 0"
-bin/recoverd --socket=/tmp/ctdb.socket >/dev/null 2>/dev/null &
+bin/ctdbd --recovery-daemon --nlist direct/4nodes.txt
+bin/ctdbd --recovery-daemon --nlist direct/4nodes.txt --listen=127.0.0.2:9001 --socket=/tmp/ctdb.socket.127.0.0.2
+bin/ctdbd --recovery-daemon --nlist direct/4nodes.txt --listen=127.0.0.3:9001 --socket=/tmp/ctdb.socket.127.0.0.3
+bin/ctdbd --recovery-daemon --nlist direct/4nodes.txt --listen=127.0.0.4:9001 --socket=/tmp/ctdb.socket.127.0.0.4
echo
echo "Attaching to some databases"