diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/rc/start-stop-daemon.c | 51 |
1 files changed, 21 insertions, 30 deletions
diff --git a/src/rc/start-stop-daemon.c b/src/rc/start-stop-daemon.c index ca40da6e..0672eedd 100644 --- a/src/rc/start-stop-daemon.c +++ b/src/rc/start-stop-daemon.c @@ -307,7 +307,7 @@ parse_schedule(const char *string, int timeout) } static pid_t -get_pid(const char *pidfile, bool quiet) +get_pid(const char *pidfile) { FILE *fp; pid_t pid; @@ -316,14 +316,12 @@ get_pid(const char *pidfile, bool quiet) return -1; if ((fp = fopen(pidfile, "r")) == NULL) { - if (!quiet) - eerror("%s: fopen `%s': %s", applet, pidfile, strerror(errno)); + eerror("%s: fopen `%s': %s", applet, pidfile, strerror(errno)); return -1; } if (fscanf(fp, "%d", &pid) != 1) { - if (!quiet) - eerror("%s: no pid found in `%s'", applet, pidfile); + eerror("%s: no pid found in `%s'", applet, pidfile); fclose(fp); return -1; } @@ -337,7 +335,7 @@ get_pid(const char *pidfile, bool quiet) static int do_stop(const char *exec, const char *const *argv, pid_t pid, uid_t uid,int sig, - bool quiet, bool verbose, bool test) + bool verbose, bool test) { RC_PIDLIST *pids; RC_PID *pi; @@ -385,7 +383,7 @@ do_stop(const char *exec, const char *const *argv, static int run_stop_schedule(const char *exec, const char *const *argv, const char *pidfile, uid_t uid, - bool quiet, bool verbose, bool test, bool progress) + bool verbose, bool test, bool progress) { SCHEDULEITEM *item = TAILQ_FIRST(&schedule); int nkilled = 0; @@ -416,7 +414,7 @@ run_stop_schedule(const char *exec, const char *const *argv, } if (pidfile) { - pid = get_pid(pidfile, quiet); + pid = get_pid(pidfile); if (pid == -1) return 0; } @@ -430,12 +428,11 @@ run_stop_schedule(const char *exec, const char *const *argv, case SC_SIGNAL: nrunning = 0; nkilled = do_stop(exec, argv, pid, uid, item->value, - quiet, verbose, test); + verbose, test); if (nkilled == 0) { if (tkilled == 0) { if (progressed) printf("\n"); - if (! quiet) eerror("%s: no matching processes found", applet); } return tkilled; @@ -460,8 +457,7 @@ run_stop_schedule(const char *exec, const char *const *argv, nloops++) { if ((nrunning = do_stop(exec, argv, - pid, uid, 0, true, false, - true)) == 0) + pid, uid, 0, false, true)) == 0) return 0; @@ -506,12 +502,10 @@ run_stop_schedule(const char *exec, const char *const *argv, if (progressed) printf("\n"); - if (! quiet) { - if (nrunning == 1) - eerror("%s: %d process refused to stop", applet, nrunning); - else - eerror("%s: %d process(es) refused to stop", applet, nrunning); - } + if (nrunning == 1) + eerror("%s: %d process refused to stop", applet, nrunning); + else + eerror("%s: %d process(es) refused to stop", applet, nrunning); return -nrunning; } @@ -680,7 +674,6 @@ start_stop_daemon(int argc, char **argv) bool stop = false; bool oknodo = false; bool test = false; - bool quiet; bool verbose = false; char *exec = NULL; char *startas = NULL; @@ -918,7 +911,6 @@ start_stop_daemon(int argc, char **argv) endpwent(); argc -= optind; argv += optind; - quiet = rc_yesno(getenv("EINFO_QUIET")); verbose = rc_yesno(getenv("EINFO_VERBOSE")); /* Allow start-stop-daemon --signal HUP --exec /usr/sbin/dnsmasq @@ -1063,7 +1055,7 @@ start_stop_daemon(int argc, char **argv) else parse_schedule(NULL, sig); i = run_stop_schedule(exec, (const char *const *)margv, - pidfile, uid, quiet, verbose, test, progress); + pidfile, uid, verbose, test, progress); if (i < 0) /* We failed to stop something */ @@ -1085,16 +1077,16 @@ start_stop_daemon(int argc, char **argv) } if (pidfile) - pid = get_pid(pidfile, true); + pid = get_pid(pidfile); else pid = 0; if (do_stop(exec, (const char * const *)margv, pid, uid, - 0, true, false, true) > 0) + 0, false, true) > 0) eerrorx("%s: %s is already running", applet, exec); if (test) { - if (quiet) + if (rc_yesno(getenv("EINFO_QUIET"))) exit (EXIT_SUCCESS); einfon("Would start"); @@ -1289,9 +1281,9 @@ start_stop_daemon(int argc, char **argv) } /* We don't redirect stdin as some daemons may need it */ - if (background || quiet || redirect_stdout) + if (background || redirect_stdout || rc_yesno(getenv("EINFO_QUIET"))) dup2(stdout_fd, STDOUT_FILENO); - if (background || quiet || redirect_stderr) + if (background || redirect_stderr || rc_yesno(getenv("EINFO_QUIET"))) dup2(stderr_fd, STDERR_FILENO); for (i = getdtablesize() - 1; i >= 3; --i) @@ -1323,8 +1315,7 @@ start_stop_daemon(int argc, char **argv) } } while (!WIFEXITED(i) && !WIFSIGNALED(i)); if (!WIFEXITED(i) || WEXITSTATUS(i) != 0) { - if (!quiet) - eerrorx("%s: failed to start `%s'", applet, exec); + eerror("%s: failed to start `%s'", applet, exec); exit(EXIT_FAILURE); } pid = spid; @@ -1360,7 +1351,7 @@ start_stop_daemon(int argc, char **argv) alive = true; } else { if (pidfile) { - pid = get_pid(pidfile, true); + pid = get_pid(pidfile); if (pid == -1) { eerrorx("%s: did not " "create a valid" @@ -1370,7 +1361,7 @@ start_stop_daemon(int argc, char **argv) } else pid = 0; if (do_stop(exec, (const char *const *)margv, - pid, uid, 0, true, false, true) > 0) + pid, uid, 0, false, true) > 0) alive = true; } |