From: root Date: Sat, 4 Apr 2020 03:35:22 +0000 (-0500) Subject: fix manager_state X-Git-Tag: v246-rc1~642 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f9d29f6d06058104ac88431495b36bc5edc45843;p=thirdparty%2Fsystemd.git fix manager_state --- diff --git a/src/core/manager.c b/src/core/manager.c index 2ae1e3f4d93..4a11054e05c 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -4247,6 +4247,11 @@ ManagerState manager_state(Manager *m) { assert(m); + /* Is the special shutdown target active or queued? If so, we are in shutdown state */ + u = manager_get_unit(m, SPECIAL_SHUTDOWN_TARGET); + if (u && unit_active_or_pending(u)) + return MANAGER_STOPPING; + /* Did we ever finish booting? If not then we are still starting up */ if (!MANAGER_IS_FINISHED(m)) { @@ -4257,11 +4262,6 @@ ManagerState manager_state(Manager *m) { return MANAGER_STARTING; } - /* Is the special shutdown target active or queued? If so, we are in shutdown state */ - u = manager_get_unit(m, SPECIAL_SHUTDOWN_TARGET); - if (u && unit_active_or_pending(u)) - return MANAGER_STOPPING; - if (MANAGER_IS_SYSTEM(m)) { /* Are the rescue or emergency targets active or queued? If so we are in maintenance state */ u = manager_get_unit(m, SPECIAL_RESCUE_TARGET);