示例#1
0
int main(int argc,char *argv[])
{
	int pid;
	int res;
	char option[100];
	if(argc <= 1 || argc > 2){
		print_help();
		return 1;
	}
	strcpy(option,argv[1]);
	if(!( (0 == strcmp(option,"-quit")) 
				|| (0 == strcmp(option,"-term")) )){
		print_help();
		return 1;
	}
	pid = read_pid_from_file();
	if(0 == strcmp(option,"-quit")){
		res = kill(pid,SIGQUIT);
		if( -1 == res ){
			printf("send QUIT sig error \n");
			return 0;
		}
	}else{
		res = kill(pid,SIGTERM);
		if( -1 == res ){
			printf("send TERM sig error \n");
			return 0;
		}
	}
	return 1;
}
示例#2
0
co_rc_t console_window_t::parse_args(int argc, char** argv)
{
	bool_t 		pidfile_specified;
	co_pathname_t	pidfile;
	co_command_line_params_t cmdline;
	co_rc_t rc;

	/* Default settings */

	rc = co_cmdline_params_alloc(&argv[1], argc-1, &cmdline);
	if (!CO_OK(rc)) {
		co_terminal_print("console: error parsing arguments\n");
		goto out_clean;
	}

	rc = co_cmdline_params_one_arugment_int_parameter(
			cmdline,
			"-a",
			NULL,
			&start_parameters.attach_id);

	if (!CO_OK(rc)) {
		syntax();
		goto out;
	}

	rc = co_cmdline_params_one_arugment_parameter(
			cmdline,
			"-p",
			&pidfile_specified,
			pidfile, sizeof(pidfile));

	if (!CO_OK(rc)) {
		syntax();
		goto out;
	}

	if (pidfile_specified) {
		rc = read_pid_from_file(pidfile, &start_parameters.attach_id);
		if (!CO_OK(rc)) {
			co_terminal_print("error on reading PID from file '%s'\n", pidfile);
			return CO_RC(ERROR);
		}
	}

	rc = co_cmdline_params_check_for_no_unparsed_parameters(cmdline, PTRUE);
	if (!CO_OK(rc)) {
		syntax();
		goto out;
	}

out:
	co_cmdline_params_free(cmdline);

out_clean:
	return rc;
}
示例#3
0
co_rc_t console_window_t::parse_args(int argc, char **argv)
{
	char** param_scan = argv;

	/* Parse command line */
	while (argc > 0) {
		const char* option;

		if (strcmp(*param_scan, (option = "-a")) == 0) {
			param_scan++;
			argc--;

			if (argc <= 0) {
				co_terminal_print(
					"Parameter of command line option %s not specified\n",
					option);
				return CO_RC(ERROR);
			}

			start_parameters.attach_id = atoi(*param_scan);
		} else if (strcmp(*param_scan, (option = "-p")) == 0) {
			co_rc_t rc;

			param_scan++;
			argc--;

			if (argc <= 0) {
				co_terminal_print(
					"Parameter of command line option %s not specified\n",
					option);
				return CO_RC(ERROR);
			}

			rc = read_pid_from_file(*param_scan, &start_parameters.attach_id);
			if (!CO_OK(rc)) {
				co_terminal_print(
					"error on reading PID from file '%s'\n", *param_scan);
				return CO_RC(ERROR);
			}
		}

		param_scan++;
		argc--;
	}

	return CO_RC(OK);
}