${INSTALLCMD} -m 644 config/functions $(DESTDIR)$(etcdir)/ctdb
${INSTALLCMD} -m 755 config/statd-callout $(DESTDIR)$(etcdir)/ctdb
${INSTALLCMD} -m 755 config/interface_modify.sh $(DESTDIR)$(etcdir)/ctdb
+ ${INSTALLCMD} -m 755 config/gdb_backtrace $(DESTDIR)$(etcdir)/ctdb
${INSTALLCMD} -m 644 config/events.d/README $(DESTDIR)$(docdir)/ctdb/README.eventscripts
${INSTALLCMD} -m 644 doc/recovery-process.txt $(DESTDIR)$(docdir)/ctdb/recovery-process.txt
${INSTALLCMD} -m 755 config/events.d/00.ctdb $(DESTDIR)$(etcdir)/ctdb/events.d
sep=""
}
+ # we may quote the value
+ [ -n "$4" ] && {
+ val="$4$2$4"
+ }
+
CTDB_OPTIONS="${CTDB_OPTIONS}${CTDB_OPTIONS:+ }${1}${sep}${val}"
}
maybe_set "--log-ringbuf-size" "$CTDB_LOG_RINGBUF_SIZE"
maybe_set "--syslog" "$CTDB_SYSLOG" "yes"
maybe_set "--max-persistent-check-errors" "$CTDB_MAX_PERSISTENT_CHECK_ERRORS"
+ maybe_set "--panic-action" "$CTDB_PANIC_ACTION" "" "'"
}
check_tdb () {
# CTDB_SET_TRAVERSETIMEOUT=60
# you can get a list of variables using "ctdb listvars"
+# setup a panic action which is triggerd when ctdbd
+# gets SIGABRT, SIGBUS, SIGSEGV or SIGFPE.
+#
+# The magic values %PID% and %PROG% will be substituted.
+#
+# CTDB_PANIC_ACTION="/etc/ctdb/gdb_backtrace %PID% %PROG%"
+
# any other options you might want. Run ctdbd --help for a list
# CTDB_OPTIONS=
const char *public_interface;
const char *single_public_ip;
const char *node_ip;
+ const char *panic_action;
int valgrinding;
int use_syslog;
int start_as_disabled;
{ "dbdir-persistent", 0, POPT_ARG_STRING, &options.db_dir_persistent, 0, "directory for persistent tdb files", NULL },
{ "dbdir-state", 0, POPT_ARG_STRING, &options.db_dir_state, 0, "directory for internal state tdb files", NULL },
{ "reclock", 0, POPT_ARG_STRING, &options.recovery_lock_file, 0, "location of recovery lock file", "filename" },
+ { "panic-action", 0, POPT_ARG_STRING,
+ &options.panic_action, 0,
+ "set the panic action (default none)", NULL },
{ "valgrinding", 0, POPT_ARG_NONE, &options.valgrinding, 0, "make valgrind more effective", NULL },
{ "syslog", 0, POPT_ARG_NONE, &options.use_syslog, 0, "log messages to syslog", NULL },
{ "start-as-disabled", 0, POPT_ARG_NONE, &options.start_as_disabled, 0, "Node starts in disabled state", NULL },
ctdb_block_signal(SIGPIPE);
fault_setup("ctdbd");
+ panic_action = options.panic_action;
ev = event_context_init(NULL);
tevent_loop_allow_nesting(ev);