From: Lennart Poettering Date: Mon, 13 Nov 2017 21:03:32 +0000 (+0100) Subject: systemctl: print a friendly message when systemctl is invoked, but PID 1 is not syste... X-Git-Tag: v236~222 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=861f16d2679eeda79e8185057cef24653913e300;p=thirdparty%2Fsystemd.git systemctl: print a friendly message when systemctl is invoked, but PID 1 is not systemd (#7318) 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 --- diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index 670bff999c9..f8c8c318a3c 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -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