summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/main.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/core/main.c b/src/core/main.c
index b66ae0e035..4d9a2d453e 100644
--- a/src/core/main.c
+++ b/src/core/main.c
@@ -1749,12 +1749,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)