From: Matthias Kruk Date: Wed, 6 May 2020 07:00:29 +0000 (+0900) Subject: kernel/core: Clean up the init process X-Git-Url: https://git.corax.cc/?a=commitdiff_plain;h=19ec80e24853c935403c3c2922f1e6185d1bf14e;p=corax kernel/core: Clean up the init process --- diff --git a/kernel/core/main.c b/kernel/core/main.c index 8db5e82..b74cbef 100644 --- a/kernel/core/main.c +++ b/kernel/core/main.c @@ -68,17 +68,18 @@ static void _init(void) char buffer[128]; int len; - len = snprintf(buffer, sizeof(buffer), "Executing %s\n", - initfs.ifs_entries[i].ife_name); - - debug(buffer, len); - pid = fork(); - len = snprintf(buffer, sizeof(buffer), "pid = %08u\n", pid); - debug(buffer, len); + if(pid > 0) { + /* parent process */ + + len = snprintf(buffer, sizeof(buffer), + "%s pid = %08u\n", + initfs.ifs_entries[i].ife_name, pid); + debug(buffer, len); + } else if(!pid) { + /* child process */ - if(!pid) { char argv1[16]; char argv0[16]; char *argv[3]; @@ -108,6 +109,13 @@ static void _init(void) if(err < 0) { debug("execeve failed\n", 15); } + } else { + /* fork() failed */ + + len = snprintf(buffer, sizeof(buffer), + "Could not fork process for %s\n", + initfs.ifs_entries[i].ife_name); + debug(buffer, len); } }