version 1.20, 2010/08/19 18:29:01 |
version 1.21, 2010/10/16 08:31:55 |
|
|
if (nullfd != STDIN_FILENO && nullfd != STDERR_FILENO) |
if (nullfd != STDIN_FILENO && nullfd != STDERR_FILENO) |
close(nullfd); |
close(nullfd); |
|
|
|
closefrom(STDERR_FILENO + 1); |
|
|
execl(_PATH_BSHELL, "sh", "-c", job->cmd, (char *) NULL); |
execl(_PATH_BSHELL, "sh", "-c", job->cmd, (char *) NULL); |
fatal("execl failed"); |
fatal("execl failed"); |
default: /* parent */ |
default: /* parent */ |
|
|
if ((mode = fcntl(job->fd, F_GETFL)) == -1) |
if ((mode = fcntl(job->fd, F_GETFL)) == -1) |
fatal("fcntl failed"); |
fatal("fcntl failed"); |
if (fcntl(job->fd, F_SETFL, mode|O_NONBLOCK) == -1) |
if (fcntl(job->fd, F_SETFL, mode|O_NONBLOCK) == -1) |
fatal("fcntl failed"); |
|
if (fcntl(job->fd, F_SETFD, FD_CLOEXEC) == -1) |
|
fatal("fcntl failed"); |
fatal("fcntl failed"); |
|
|
if (job->event != NULL) |
if (job->event != NULL) |