From 2cb1a60d14f869023652482a380ca7b659dcf78f Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 18 Jun 2010 20:01:01 +0200 Subject: init: call telinit in case we are run as init and not pid1 --- src/main.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index 99f6bdd712..8a7f18ea9c 100644 --- a/src/main.c +++ b/src/main.c @@ -610,6 +610,16 @@ int main(int argc, char *argv[]) { FDSet *fds = NULL; bool reexecute = false; + if (getpid() != 1 && strstr(program_invocation_short_name, "init")) { + /* This is compatbility support for SysV, where + * calling init as a user is identical to telinit. */ + + errno = -ENOENT; + execv(SYSTEMCTL_BINARY_PATH, argv); + log_error("Failed to exec " SYSTEMCTL_BINARY_PATH ": %m"); + return 1; + } + log_show_color(true); log_show_location(false); log_set_max_level(LOG_DEBUG); -- cgit v1.2.3-54-g00ecf