]> git.corax.cc Git - corax/commitdiff
kernel/core: Clean up the init process
authorMatthias Kruk <m@m10k.eu>
Wed, 6 May 2020 07:00:29 +0000 (16:00 +0900)
committerMatthias Kruk <m@m10k.eu>
Wed, 6 May 2020 07:00:29 +0000 (16:00 +0900)
kernel/core/main.c

index 8db5e82ded66ece3fc59de8df61f00e4486e0864..b74cbef945ea39fb408accc0b8021d956c267898 100644 (file)
@@ -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);
                }
        }