Пример #1
0
static int run_event_script(envid_t ctid, const char *event)
{
	char script[sizeof(SCRIPTDIR)*2];
	int pid;

	snprintf(script, sizeof(script), "%s/vzevent-%s",
			SCRIPTDIR, event);
	if (access(script, X_OK) != 0) {
		if (errno == ENOENT)
			return 0;
		logger(-1, errno, "Can't execute %s", script);
	}

	logger(1, 0, "Running %s event script", event);

	pid = fork();
	switch (pid) {
		case -1:
			logger(-1, errno, "Failed to fork()");
			return 1;
		case 0:
			exit(run_pre_script(ctid, script));
		default:
			logger(1, 0, "Forked child %d for %s event",
					pid, event);
	}
	return 0;
}
Пример #2
0
static int run_event_script(envid_t ctid, const char *event)
{
	char script[sizeof(LIB_SCRIPTS_DIR)*2];
	int pid;

	snprintf(script, sizeof(script), "%svzevent-%s",
			LIB_SCRIPTS_DIR, event);
	logger(1, 0, "Running %s event script", event);

	pid = fork();
	switch (pid) {
		case -1:
			logger(-1, errno, "Failed to fork()");
			return 1;
		case 0:
			exit(run_pre_script(ctid, script));
		default:
			logger(1, 0, "Forked child %d for %s event",
					pid, event);
	}
	return 0;
}