]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
systemctl: print a friendly message when systemctl is invoked, but PID 1 is not syste...
authorLennart Poettering <lennart@poettering.net>
Mon, 13 Nov 2017 21:03:32 +0000 (22:03 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Mon, 13 Nov 2017 21:03:32 +0000 (22:03 +0100)
We only show this message when we can't talk to systemd, so that client
side install can work.

Fixes: https://bugzilla.freedesktop.org/show_bug.cgi?id=69962
src/systemctl/systemctl.c

index 670bff999c9bf64c149e8e94e05ccb639a36b1a7..f8c8c318a3c734e99509d407ef5299a5c6b197bc 100644 (file)
@@ -216,6 +216,12 @@ static int acquire_bus(BusFocus focus, sd_bus **ret) {
 
                 user = arg_scope != UNIT_FILE_SYSTEM;
 
+                if (!user && sd_booted() <= 0) {
+                        /* Print a friendly message when the local system is actually not running systemd as PID 1. */
+                        log_error("System has not been booted with systemd as init system (PID 1). Can't operate.");
+                        return -EHOSTDOWN;
+                }
+
                 if (focus == BUS_MANAGER)
                         r = bus_connect_transport_systemd(arg_transport, arg_host, user, &busses[focus]);
                 else