Blob Blame History Raw
From 1be885f0e0f7023d1adc09fb0b247935c1a0b3bd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Sat, 28 Jan 2017 21:18:31 -0500
Subject: [PATCH] systemctl: always avoid being killed when doing switch-root

The same logic as described in acc28e2e3037d689d6481e applies to any time we are
switching root, to just set the flag unconditionally.

(cherry picked from commit b3ad0ff48c154ed056a6bded2adac609395a9439)

Related: #1754053
---
 src/systemctl/systemctl.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c
index f84b92ccbe..0928e2972a 100644
--- a/src/systemctl/systemctl.c
+++ b/src/systemctl/systemctl.c
@@ -5062,11 +5062,9 @@ static int switch_root(sd_bus *bus, char **args) {
         }
 
         /* Instruct PID1 to exclude us from its killing spree applied during
-         * the transition from the initrd to the main system otherwise we would
-         * exit with a failure status even though the switch to the new root
-         * has succeed. */
-        if (in_initrd())
-                argv_cmdline[0] = '@';
+         * the transition. Otherwise we would exit with a failure status even
+         * though the switch to the new root has succeed. */
+        argv_cmdline[0] = '@';
 
         log_debug("Switching root - root: %s; init: %s", root, strna(init));