示例#1
0
void FzController::start(void) {

   // start thread pool
   start_collector();
   start_rcs();
   start_cli();
#ifdef WEBLOG_ENABLED
   start_weblog();
#endif
}
示例#2
0
文件: main.c 项目: jack-zh/zycli
int main(int argc, char *argv[])
{
    char *cmd = NULL;
    char remote_host[256] = {0};
    int opt,has_server = 0 ;
    int c_flag = 0;
    int cmd_length = 0;
    FILE *fp = NULL;
    int yyrv = 0;

    console = get_console();
    setlinebuf(stdout);
    progname = basename(argv[0]);

    while ((opt = getopt(argc, argv, "cif:s:h")) > 0)
    {
        switch (opt)
        {
            case 'c':
                c_flag = 1;
                break;

            case 'i':
                ignore = 1;
                break;

            case 'f':
                fp = fopen(optarg, "r");
                if (fp == NULL)
                {
                    fprintf(stderr, "Cannot open file: %s\n", optarg);
                    exit(1);
                }
                break;

            case 's':
                if(sprintf(remote_host,"%s",optarg))
                    has_server = 1;
                break;

            case 'h':
            default:
                die("Usage: %s [-f <file>] [-c cmd] [-s server]\n", progname);
                break;
        }
    }

    if(!has_server)
    {
        sprintf(remote_host,"127.0.0.1");
        //printf ("No server specified,127.0.0.1 \n");
    }


    if(isatty(0)){ 
        tcgetattr(0, &tp);
    }
    
    signal(SIGHUP, SIG_DFL);
    signal(SIGINT, SIG_IGN);
    signal(SIGALRM, (void *)hd_alarm);



    if(( c_flag == 1) && (optind < argc) )
    {
        int i;
        for(i = optind; i < argc; i++)
        {
            cmd_length += strlen(argv[i]);
        }

        cmd_length += argc - optind + 1;

        cmd = (char *)calloc(cmd_length, sizeof(char));

        for(i = optind; i < argc; i++)
        {
            strcat(cmd,argv[i]);
            if(i == argc - 1)
            {
                //strcat(cmd,"\n");
            }
            else
            {
                strcat(cmd," ");
            }
        }

    }else if(c_flag == 1)
        die("Usage: %s [-f <file>] [-c cmd] [-s server]\n", progname);

    start_cli(cmd, fp);
    return 0;
}
示例#3
0
int32_t main(int32_t argc, char  *argv[])
{
	printf("----------------  EmbedWay  ----------------\n");
	start_cli();
    return 0;
}
示例#4
0
int main(int argc, char **argv)
{
	int i;
	int fanotify_fd, ret;
	struct backend *be = NULL;
	struct stat stbuf;

	logfd = stdout;
	memset(frontend_prefix, 0x0, FILENAME_MAX);

	while ((i = getopt(argc, argv, "b:c:d:m:n:o:p:su:")) != -1) {
		switch (i) {
		case 'b':
			be = new_backend(optarg);
			if (!be) {
				err("Invalid backend '%s'\n", optarg);
				return EINVAL;
			}
			break;
		case 'd':
			if (stat(optarg, &stbuf) < 0 ||
			    !S_ISDIR(stbuf.st_mode)) {
				err("Frontend prefix %s is not a directory",
				    optarg);
				return EINVAL;
			}
			strncpy(frontend_prefix, optarg, FILENAME_MAX);
			break;
		case 'c':
			return cli_command(CLI_CHECK, optarg);
			break;
		case 'm':
			ret = cli_command(CLI_CHECK, optarg);
			if (ret)
				return ret;
			ret = cli_command(CLI_MIGRATE, optarg);
			if (ret)
				return ret;
			/* Fallthrough */
		case 'n':
			return cli_command(CLI_MONITOR, optarg);
			break;
		case 'o':
			if (!be) {
				err("No backend selected");
				return EINVAL;
			}
			if (parse_backend_options(be, optarg) < 0) {
				err("Invalid backend option '%s'", optarg);
				return EINVAL;
			}
			break;
		case 'p':
			log_priority = strtoul(optarg, NULL, 10);
			if (log_priority > LOG_DEBUG) {
				err("Invalid logging priority %d (max %d)",
				    log_priority, LOG_DEBUG);
				exit(1);
			}
			break;
		case 's':
			return cli_command(CLI_SHUTDOWN, NULL);
			break;
		case 'u':
			ret = cli_command(CLI_CHECK, optarg);
			if (ret && ret != ENOENT)
				return ret;
			ret = cli_command(CLI_SETUP, optarg);
			if (ret)
				return ret;
			return cli_command(CLI_MONITOR, optarg);
			break;
		default:
			fprintf(stderr, "usage: %s [-d <dir>]\n", argv[0]);
			return EINVAL;
		}
	}
	if (optind < argc) {
		fprintf(stderr, "usage: %s [-b file] [-p <dir>]\n", argv[0]);
		return EINVAL;
	}

	signal_set(SIGINT, sigend);
	signal_set(SIGTERM, sigend);

	fanotify_fd = fanotify_init(FAN_CLASS_PRE_CONTENT, O_RDWR);
	if (fanotify_fd < 0) {
		fprintf(stderr, "cannot start fanotify, error %d\n",
			errno);
		return errno;
	}

	daemon_thr = pthread_self();

	watcher_thr = start_watcher(be, fanotify_fd);
	if (!watcher_thr)
		return errno;

	cli_thr = start_cli(be, fanotify_fd);
	if (!cli_thr) {
		stop_watcher(watcher_thr);
		return ENOMEM;
	}

	pthread_cond_wait(&exit_cond, &exit_mutex);

	stop_cli(cli_thr);
	stop_watcher(watcher_thr);

	return 0;
}