Example #1
0
int main(int argc, char **argv) {
  struct cmd_args args;
  newt_config config;
  int ret;

  /* register signal handler */
  init_signal_handler();

  // parse command-line arguments
  parse_opt(argc, argv, &args);
  if(args.config_path == NULL) {
    perror("failed to load configuration file");
    exit(1);
  }

  ret = load_config(args.config_path, &config);
  if(ret == RET_ERROR) {
    perror("failed to load configuration file");
    exit(1);
  }

  if(daemon_initialize() == RET_ERROR) {
    exit(1);
  }

  if(daemon_start(config) == RET_ERROR) {
    exit(1);
  }

  return 0;
}
Example #2
0
static void check_daemon(void) {
  pid_t pid;
  newt_config config;

  init_newt_config(&config);

  if((pid = fork()) == 0) {
    CU_ASSERT(daemon_initialize(&config) == RET_SUCCESS);

    daemon_start(&config);
  } else {
    /* delay to wait for initialization of daemon to complete */
    sleep(1);

    kill(pid, SIGINT);

    wait(NULL);
  }
}