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; }
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; }