summaryrefslogtreecommitdiffabout
path: root/src/sentinel.c
Unidiff
Diffstat (limited to 'src/sentinel.c') (more/less context) (ignore whitespace changes)
-rw-r--r--src/sentinel.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/sentinel.c b/src/sentinel.c
index 1d44763..59b89cc 100644
--- a/src/sentinel.c
+++ b/src/sentinel.c
@@ -140,24 +140,26 @@ start_command(int p[])
140 xpipe(errpipe); 140 xpipe(errpipe);
141 xpipe(outpipe); 141 xpipe(outpipe);
142 pid = fork(); 142 pid = fork();
143 if (pid == -1) { 143 if (pid == -1) {
144 system_error(errno, "pipe"); 144 system_error(errno, "pipe");
145 return -1; 145 return -1;
146 } 146 }
147 147
148 if (pid == 0) { 148 if (pid == 0) {
149 char *argv[] = { SHELL, "-c", NULL, NULL }; 149 char *argv[] = { SHELL, "-c", NULL, NULL };
150 int i; 150 int i;
151 151
152 runas();
153
152 close(0); 154 close(0);
153 close(1); 155 close(1);
154 close(2); 156 close(2);
155 open("/dev/null", O_RDWR); 157 open("/dev/null", O_RDWR);
156 dup(outpipe[1]); 158 dup(outpipe[1]);
157 dup(errpipe[1]); 159 dup(errpipe[1]);
158 160
159 i = max(max(outpipe[0],outpipe[1]), 161 i = max(max(outpipe[0],outpipe[1]),
160 max(errpipe[0],errpipe[1])); 162 max(errpipe[0],errpipe[1]));
161 while (--i > 2) 163 while (--i > 2)
162 close(i); 164 close(i);
163 165

Return to:

Send suggestions and report system problems to the System administrator.