diff --git a/src/core/manager.c b/src/core/manager.c index c819dd1069..1d177008e5 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -3016,6 +3016,10 @@ int manager_serialize(Manager *m, FILE *f, FDSet *fds, bool switching_root) { fprintf(f, "taint-logged=%s\n", yes_no(m->taint_logged)); fprintf(f, "service-watchdogs=%s\n", yes_no(m->service_watchdogs)); + t = show_status_to_string(m->show_status); + if (t) + fprintf(f, "show-status=%s\n", t); + if (m->log_level_overridden) fprintf(f, "log-level-override=%i\n", log_get_max_level()); if (m->log_target_overridden) @@ -3205,6 +3209,15 @@ int manager_deserialize(Manager *m, FILE *f, FDSet *fds) { else m->service_watchdogs = b; + } else if ((val = startswith(l, "show-status="))) { + ShowStatus s; + + s = show_status_from_string(val); + if (s < 0) + log_notice("Failed to parse show-status flag %s", val); + else + manager_set_show_status(m, s); + } else if ((val = startswith(l, "log-level-override="))) { int level; diff --git a/src/core/show-status.c b/src/core/show-status.c index 9e5e7a50b9..d8d2317d38 100644 --- a/src/core/show-status.c +++ b/src/core/show-status.c @@ -10,7 +10,7 @@ #include "terminal-util.h" #include "util.h" -static const char* const show_status_table[] = { +static const char* const show_status_table[_SHOW_STATUS_MAX] = { [SHOW_STATUS_NO] = "no", [SHOW_STATUS_AUTO] = "auto", [SHOW_STATUS_TEMPORARY] = "temporary", diff --git a/src/core/show-status.h b/src/core/show-status.h index 3fce567a02..ac590303c1 100644 --- a/src/core/show-status.h +++ b/src/core/show-status.h @@ -12,6 +12,7 @@ typedef enum ShowStatus { SHOW_STATUS_AUTO, SHOW_STATUS_TEMPORARY, SHOW_STATUS_YES, + _SHOW_STATUS_MAX, _SHOW_STATUS_INVALID = -1, } ShowStatus;