From c10c2bb95f68b085bfb70bd2ec5cd17411b18d8c Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay@vrfy.org>
Date: Tue, 22 May 2012 19:11:10 +0200
Subject: [PATCH] main: only fall back to /bin/sh in case /sbin/init does not
exist (cherry picked from commit
745e2fb79ab20f3e98310d5e889a161ffe8b492c)
---
src/core/main.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/src/core/main.c b/src/core/main.c
index 6931627..f1b2b28 100644
--- a/src/core/main.c
+++ b/src/core/main.c
@@ -1755,12 +1755,15 @@ finish:
args[0] = "/sbin/init";
execv(args[0], (char* const*) args);
- log_warning("Failed to execute /sbin/init, trying fallback: %m");
+ if (errno == ENOENT) {
+ log_warning("No /sbin/init, trying fallback");
- args[0] = "/bin/sh";
- args[1] = NULL;
- execv(args[0], (char* const*) args);
- log_error("Failed to execute /bin/sh, giving up: %m");
+ args[0] = "/bin/sh";
+ args[1] = NULL;
+ execv(args[0], (char* const*) args);
+ log_error("Failed to execute /bin/sh, giving up: %m");
+ } else
+ log_warning("Failed to execute /sbin/init, giving up: %m");
}
if (serialization)