diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/core/main.c | 4 | ||||
-rw-r--r-- | 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 ada0f9d94b..243855fa15 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 2db761de36..c02a14d66e 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(); |