start-stop-daemon: fix "-K --test --pidfile PIDFILE" exitcode
authorDenys Vlasenko <vda.linux@googlemail.com>
Mon, 4 Apr 2011 00:03:35 +0000 (02:03 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Mon, 4 Apr 2011 00:03:35 +0000 (02:03 +0200)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
debianutils/start_stop_daemon.c

index 30dd970..bc61959 100644 (file)
@@ -337,11 +337,17 @@ static int do_stop(void)
                goto ret;
        }
        for (p = G.found_procs; p; p = p->next) {
-               if (TEST || kill(p->pid, signal_nr) == 0) {
+               if (kill(p->pid, TEST ? 0 : signal_nr) == 0) {
                        killed++;
                } else {
-                       p->pid = 0;
                        bb_perror_msg("warning: killing process %u", (unsigned)p->pid);
+                       p->pid = 0;
+                       if (TEST) {
+                               /* Example: -K --test --pidfile PIDFILE detected
+                                * that PIDFILE's pid doesn't exist */
+                               killed = -1;
+                               goto ret;
+                       }
                }
        }
        if (!QUIET && killed) {