From ec26be514ff3c5367b21f9881369080bda54fd2d Mon Sep 17 00:00:00 2001 From: Kay Sievers Date: Fri, 5 Jul 2013 00:32:05 +0200 Subject: [PATCH 6/6] suppress status message output at shutdown when 'quiet' is given --- src/core/main.c | 4 ++-- src/core/shutdown.c | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/core/main.c b/src/core/main.c index ada0f9d..243855f 100644 --- a/src/core/main.c +++ b/src/core/main.c @@ -1942,9 +1942,9 @@ finish: watchdog_close(true); } - /* avoid the creation of new processes forked by the kernel; at this + /* avoid the creation of new processes forked by the kernel; at this * point, we will not listen to the signals anyway */ - cg_uninstall_release_agent(SYSTEMD_CGROUP_CONTROLLER); + cg_uninstall_release_agent(SYSTEMD_CGROUP_CONTROLLER); execve(SYSTEMD_SHUTDOWN_BINARY_PATH, (char **) command_line, env_block); free(env_block); diff --git a/src/core/shutdown.c b/src/core/shutdown.c index 2db761d..c02a14d 100644 --- a/src/core/shutdown.c +++ b/src/core/shutdown.c @@ -39,6 +39,7 @@ #include "missing.h" #include "log.h" +#include "fileio.h" #include "umount.h" #include "util.h" #include "mkdir.h" @@ -130,12 +131,26 @@ static int pivot_to_new_root(void) { } int main(int argc, char *argv[]) { + _cleanup_free_ char *line = NULL; int cmd, r; unsigned retries; bool need_umount = true, need_swapoff = true, need_loop_detach = true, need_dm_detach = true; bool in_container, use_watchdog = false; char *arguments[3]; + /* suppress shutdown status output if 'quiet' is used */ + r = read_one_line_file("/proc/cmdline", &line); + if (r >= 0) { + char *w, *state; + size_t l; + + FOREACH_WORD_QUOTED(w, l, line, state) + if (streq(w, "quiet")) { + log_set_max_level(LOG_WARNING); + break; + } + } + log_parse_environment(); log_set_target(LOG_TARGET_CONSOLE); /* syslog will die if not gone yet */ log_open(); -- 1.8.1.4