From 6bae23a0388dd077fee99e83e161d297c3e2b768 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Thomas=20B=C3=A4chler?= Date: Sat, 6 Oct 2012 01:11:52 +0200 Subject: [PATCH] core: Refuse to run a user instance when the system hasn't been booted with systemd. Running as a user instance won't work at all if systemd isn't running as system manager, so refuse to start in that case. --- src/core/main.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/core/main.c b/src/core/main.c index f9aba46b5..e094efeb3 100644 --- a/src/core/main.c +++ b/src/core/main.c @@ -62,6 +62,7 @@ #include "hwclock.h" #include "selinux-setup.h" #include "ima-setup.h" +#include "sd-daemon.h" static enum { ACTION_RUN, @@ -1423,11 +1424,19 @@ int main(int argc, char *argv[]) { if (parse_argv(argc, argv) < 0) goto finish; - if (arg_action == ACTION_TEST && geteuid() == 0) { + if (arg_action == ACTION_TEST && + geteuid() == 0) { log_error("Don't run test mode as root."); goto finish; } + if (arg_running_as == SYSTEMD_USER && + arg_action == ACTION_RUN && + sd_booted() <= 0) { + log_error("Trying to run as user instance, but the system has not been booted with systemd."); + goto finish; + } + if (arg_running_as == SYSTEMD_SYSTEM && arg_action == ACTION_RUN && running_in_chroot() > 0) { -- 2.30.2