aboutsummaryrefslogtreecommitdiff
path: root/runit
diff options
context:
space:
mode:
Diffstat (limited to 'runit')
-rw-r--r--runit/sv.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/runit/sv.c b/runit/sv.c
index 051e64e67..d52eb6d22 100644
--- a/runit/sv.c
+++ b/runit/sv.c
@@ -310,21 +310,16 @@ static int checkscript(void)
310 return 0; 310 return 0;
311 } 311 }
312 /* if (!(s.st_mode & S_IXUSR)) return 1; */ 312 /* if (!(s.st_mode & S_IXUSR)) return 1; */
313 if ((pid = fork()) == -1) { 313 prog[0] = (char*)"./check";
314 bb_perror_msg(WARN"cannot fork for %s/check", *service); 314 prog[1] = NULL;
315 pid = spawn(prog);
316 if (pid <= 0) {
317 bb_perror_msg(WARN"cannot %s child %s/check", "run", *service);
315 return 0; 318 return 0;
316 } 319 }
317 if (!pid) {
318 prog[0] = (char*)"./check";
319 prog[1] = NULL;
320 close(1);
321 execve("check", prog, environ);
322 bb_perror_msg(WARN"cannot run %s/check", *service);
323 _exit(0);
324 }
325 while (wait_pid(&w, pid) == -1) { 320 while (wait_pid(&w, pid) == -1) {
326 if (errno == EINTR) continue; 321 if (errno == EINTR) continue;
327 bb_perror_msg(WARN"cannot wait for child %s/check", *service); 322 bb_perror_msg(WARN"cannot %s child %s/check", "wait for", *service);
328 return 0; 323 return 0;
329 } 324 }
330 return !wait_exitcode(w); 325 return !wait_exitcode(w);