diff --git a/mxqd.c b/mxqd.c index b2b2b96b..d9fbcac4 100644 --- a/mxqd.c +++ b/mxqd.c @@ -938,7 +938,7 @@ unsigned long start_job(struct mxq_group_list *group) res = init_child_process(group, &mxqjob); if (!res) - exit(1); + _exit(EX__MAX + 1); mxq_job_set_tmpfilenames(&group->group, &mxqjob); @@ -960,12 +960,19 @@ unsigned long start_job(struct mxq_group_list *group) } - char **argv = str_to_strvec(mxqjob.job_argv_str); + argv = str_to_strvec(mxqjob.job_argv_str); + if (!argv) { + mx_log_err("job=%s(%d):%lu:%lu Can't recaculate commandline. str_to_strvev(%s) failed: %m", + group->group.user_name, group->group.user_uid, group->group.group_id, mxqjob.job_id, + mxqjob.job_argv_str); + _exit(EX__MAX + 1); + } + execvp(argv[0], argv); mx_log_err("job=%s(%d):%lu:%lu execvp(\"%s\", ...): %m", group->group.user_name, group->group.user_uid, group->group.group_id, mxqjob.job_id, argv[0]); - exit(1); + _exit(EX__MAX + 1); } gettimeofday(&mxqjob.stats_starttime, NULL);