Exemple #1
0
int startServer( appnetServer *serv )
{
	int sockfd[2];
	int sock_count = 0;
	
	set_daemon( serv );
	// memory alloc
	initServer( serv );
	
	listenToPort( serv->listen_ip , serv->port , sockfd , &sock_count );
	
	serv->listenfd = sockfd[0];
	
	createWorkerProcess( serv );
	
	createReactorThreads( serv );
	
	__SLEEP_WAIT__;
	
	runMainReactor( serv );
	
	destroyServer( serv );
	
	__SLEEP_WAIT__;
	return 0;
}
Exemple #2
0
/**
 * parses command line arguments and assigns values to run time
 * variables. relies on GNU getopts included with this distribution.  
 */
void
parse_cmdline(CONF C, int argc, char *argv[]) {
  int c = 0;
  BOOLEAN display = FALSE;
  while ((c = getopt_long(argc, argv, "Vhvf:CDd:l:p:", long_options, (int *)0)) != EOF) {
  switch (c) {
      case 'V':
        display_version(TRUE);
        break;
      case 'h':
        display_help(EXIT_SUCCESS);
      case 'v':
        set_verbose(C, TRUE);
        break;
      case 'C':
        display = TRUE;
        break;
      //case 'f':
      //XXX: parsed separately
      //  set_cfgfile(C, optarg);
      //  break;
      case 'D':
        set_debug(C, TRUE);
        break;
      case 'd':
        if (!optarg) {
          puts("NO OPTARG");
        }
        if (optarg != NULL && !strncasecmp(optarg, "false", 5)) { 
          set_daemon(C, FALSE);
        } else {
          set_daemon(C, TRUE);
        }
        break;
      case 'l':
        set_logfile(C, optarg);
        break;
      case 'p':
        set_pidfile(C, optarg);
        break;
    } /* end of switch */
  }   /* end of while  */
  if (display) {
    show(C, TRUE);
  }
  return;
} /* end of parse_cmdline */
Exemple #3
0
int main(int argc, char *argv[])
{
    int     opt_char;
    int     ret_code;
    bool    daemon_flag = false;

    static const char *short_opts = "c:dhv";
    struct option long_opts[] = {
        {"help",   no_argument, 0, 'h'},
        {"version",no_argument, 0, 'v'},
        {"deamon", no_argument, 0, 'd'},
        {"config", required_argument, 0, 'c'},
        {0, 0, 0, 0}
    };

    while ((opt_char = getopt_long(argc, argv, short_opts, long_opts, NULL)) != -1)
    {
        switch (opt_char)
        {
            case 'c':
                SET_STR_OPT(g_mq_conf.conf_file);
                break;
            case 'd':
                daemon_flag = true;
                break;
            case 'v':
                print_version();
                return 0;
            case 'h':
            default :
                print_usage();
                return 0; 
        }
    }

    /* If arguments contain -c, the config file was already processed */
    if (!read_conf_file())
    {    
        fprintf(stderr, "ERROR: Read config fail, Please use the right conf\n");
        return 1;
    }    

    /* Init log */
    {
        log_config_t mq_log;

        log_init_config(&mq_log);
        strcpy(mq_log.log_path, g_mq_conf.output_log_path);
        strcpy(mq_log.log_file,"ucmq_log");
        if (strcmp(g_mq_conf.output_log_level, "TRACE") == 0)
        {
            mq_log.log_level = 0;
        }
        else if (strcmp(g_mq_conf.output_log_level, "DEBUG") == 0)
        {
            mq_log.log_level = 10;
        }
        else if (strcmp(g_mq_conf.output_log_level, "INFO") == 0)
        {
            mq_log.log_level = 100;
        }
        else if (strcmp(g_mq_conf.output_log_level, "WARN") == 0)
        {
            mq_log.log_level = 1000;
        }
        else if (strcmp(g_mq_conf.output_log_level, "ERROR") == 0)
        {
            mq_log.log_level = 10000;
        }
        else if (strcmp(g_mq_conf.output_log_level, "FATAL") == 0)
        {
            mq_log.log_level = 65535;
        }
        else
        {
            mq_log.log_level = 100;
        }
        log_init(&mq_log);
    }

    if (daemon_flag)
    {
        /* Set daemon */
        set_daemon();
        set_signal_handle();
        log_info("<%s> Startup ... Daemon mode %s", argv[0], "on");
        ret_code = main_entrance();
        log_info("<%s> ShutDown Ok", argv[0]);
    }
    else
    {
        set_signal_handle();
        log_info("<%s> Startup ... Daemon mode %s", argv[0], "off");
        ret_code = main_entrance();
        log_info("<%s> ShutDown Ok", argv[0]);
    }

    return ret_code;
}