#include "conf-parser.h"
#include "bus-util.h"
#include "bus-error.h"
-#include "logind.h"
#include "udev-util.h"
#include "formats-util.h"
+#include "signal-util.h"
#include "label.h"
-#include "label.h"
+#include "logind.h"
#include "cgroup.h"
#include "mount-setup.h"
#include "virt.h"
goto fail;
/* If elogind should be its own controller, mount its cgroup */
- if (streq(ELOGIND_CGROUP_CONTROLLER, "name=elogind")) {
+ if (streq(SYSTEMD_CGROUP_CONTROLLER, "name=elogind")) {
r = mount_setup(true);
if (r < 0)
goto fail;
udev_unref(m->udev);
if (m->unlink_nologin)
- unlink("/run/nologin");
+ (void) unlink("/run/nologin");
bus_verify_polkit_async_registry_free(m->polkit_registry);
* kernel; at this point, we will not listen to the
* signals anyway */
if (detect_container(NULL) <= 0)
- (void) cg_uninstall_release_agent(ELOGIND_CGROUP_CONTROLLER);
+ (void) cg_uninstall_release_agent(SYSTEMD_CGROUP_CONTROLLER);
manager_shutdown_cgroup(m, true);
return -EINVAL;
}
- r = ignore_signals(SIGRTMIN + 1, -1);
- if (r < 0)
- return log_error_errno(r, "Cannot ignore SIGRTMIN + 1: %m");
-
- r = sigprocmask_many(SIG_BLOCK, SIGRTMIN, -1);
- if (r < 0)
- return log_error_errno(r, "Cannot block SIGRTMIN: %m");
+ assert_se(ignore_signals(SIGRTMIN + 1, -1) >= 0);
+ assert_se(sigprocmask_many(SIG_BLOCK, NULL, SIGRTMIN, -1) >= 0);
r = sd_event_add_signal(m->event, NULL, SIGRTMIN, manager_vt_switch, m);
if (r < 0)
manager_gc(m, true);
+ r = manager_dispatch_delayed(m, false);
+ if (r < 0)
+ return r;
+ if (r > 0)
+ continue;
+
r = sd_event_run(m->event, (uint64_t) -1);
if (r < 0)
return r;