#include #include "misc.h" #include "qlib_init.h" #include "command.h" #include #include "lib/log.h" extern void sighup (void) ; extern void sigusr1 (void) ; extern void sigusr2 (void) ; void sighup (void) { printf ("processed hup\n"); } void sigusr1 (void) { printf ("processed usr1\n"); } void sigusr2 (void) { printf ("processed usr2\n"); } struct quagga_signal_t sigs[] = { { .signal = SIGHUP, .handler = &sighup, }, { .signal = SIGUSR1, .handler = &sigusr1, }, { .signal = SIGUSR2, .handler = &sigusr2, } }; struct thread t; int main(int argc, char **argv) { qlib_init_first_stage(0); /* Absolutely first */ host_init(argv[0]) ; signal_init (master, Q_SIGC(sigs), sigs); zlog_default = openzlog("testsig", ZLOG_NONE, LOG_CONS|LOG_NDELAY|LOG_PID, LOG_DAEMON); zlog_set_level (NULL, ZLOG_DEST_SYSLOG, ZLOG_DISABLED); zlog_set_level (NULL, ZLOG_DEST_STDOUT, LOG_DEBUG); zlog_set_level (NULL, ZLOG_DEST_MONITOR, ZLOG_DISABLED); while (thread_fetch (master, &t)) thread_call (&t); exit (0); }