X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Fmanager.c;h=a7cfe570381ac5d9561497f671d7bf5d75298083;hb=4f8d551ff0177df87fae6cb970471186a422d064;hp=c7f8f20a70612497399d85770d470746d5fbdf0e;hpb=31afa0a44c2d7f93d837c840cdbd623982ac165f;p=elogind.git diff --git a/src/core/manager.c b/src/core/manager.c index c7f8f20a7..a7cfe5703 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -70,6 +70,7 @@ #include "cgroup-util.h" #include "path-util.h" #include "audit-fd.h" +#include "efivars.h" #include "env-util.h" /* As soon as 16 units are in our GC queue, make sure to run a gc sweep */ @@ -439,6 +440,11 @@ int manager_new(SystemdRunningAs running_as, Manager **_m) { if (!m) return -ENOMEM; +#ifdef ENABLE_EFI + if (detect_container(NULL) <= 0) + efi_get_boot_timestamps(&m->userspace_timestamp, &m->firmware_timestamp, &m->loader_timestamp); +#endif + m->running_as = running_as; m->name_data_slot = m->conn_data_slot = m->subscribed_data_slot = -1; m->exit_code = _MANAGER_EXIT_CODE_INVALID; @@ -1372,7 +1378,7 @@ static int manager_process_signal_fd(Manager *m) { case SIGINT: if (m->running_as == SYSTEMD_SYSTEM) { - manager_start_target(m, SPECIAL_CTRL_ALT_DEL_TARGET, JOB_REPLACE); + manager_start_target(m, SPECIAL_CTRL_ALT_DEL_TARGET, JOB_REPLACE_IRREVERSIBLY); break; }