version 1.5, 2009/10/11 08:58:05 |
version 1.6, 2009/10/20 22:15:32 |
|
|
sigreset(); |
sigreset(); |
/* XXX environ? */ |
/* XXX environ? */ |
|
|
|
close(out[1]); |
|
if (dup2(out[0], STDOUT_FILENO) == -1) |
|
fatal("dup2 failed"); |
|
if (out[0] != STDOUT_FILENO) |
|
close(out[0]); |
|
|
nullfd = open(_PATH_DEVNULL, O_RDONLY, 0); |
nullfd = open(_PATH_DEVNULL, O_RDONLY, 0); |
if (nullfd < 0) |
if (nullfd < 0) |
fatal("open failed"); |
fatal("open failed"); |
|
|
fatal("dup2 failed"); |
fatal("dup2 failed"); |
if (nullfd != STDIN_FILENO && nullfd != STDERR_FILENO) |
if (nullfd != STDIN_FILENO && nullfd != STDERR_FILENO) |
close(nullfd); |
close(nullfd); |
|
|
close(out[1]); |
|
if (dup2(out[0], STDOUT_FILENO) == -1) |
|
fatal("dup2 failed"); |
|
if (out[0] != STDOUT_FILENO) |
|
close(out[0]); |
|
|
|
execl(_PATH_BSHELL, "sh", "-c", job->cmd, (char *) NULL); |
execl(_PATH_BSHELL, "sh", "-c", job->cmd, (char *) NULL); |
fatal("execl failed"); |
fatal("execl failed"); |