feat: shell and signal demo as loadable user executable
[lunaix-os.git] / lunaix-os / uprog / init.c
index 0d1eebc9ed131a0db8f49a5cb7ada7d012f082c5..a7265c0e350c4c9b54187d5d7a2b94d77c8faf8b 100644 (file)
@@ -1,4 +1,5 @@
 #include <fcntl.h>
+#include <stdio.h>
 #include <sys/lunaix.h>
 #include <unistd.h>
 
@@ -17,7 +18,16 @@ main(int argc, const char** argv)
         return 0;
     }
 
-    syslog(0, "(%p) user space!\n", main);
+    printf("(%p) user space!\n", (void*)main);
+
+    pid_t pid;
+    if (!(pid = fork())) {
+        int err = execve("/mnt/lunaix-os/usr/sh", NULL, NULL);
+        printf("fail to execute (%d)\n", err);
+        _exit(err);
+    }
+
+    waitpid(pid, NULL, 0);
 
     return 0;
 }
\ No newline at end of file