summaryrefslogtreecommitdiff
path: root/userspace/init.c
diff options
context:
space:
mode:
authorMichal Idziorek <m.i@gmx.at>2014-12-02 01:02:49 +0100
committerMichal Idziorek <m.i@gmx.at>2014-12-02 01:02:49 +0100
commitc2c03f41e078481921bad82487eded0fc51ebb59 (patch)
tree1e310556c9a809aea112728bae9e0a6807ee0ba2 /userspace/init.c
parentf20db37ca17245d5d20302a1ac1da347de5c3607 (diff)
further work on fork and friends
Diffstat (limited to 'userspace/init.c')
-rw-r--r--userspace/init.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/userspace/init.c b/userspace/init.c
index fd562a9..8c3bcd7 100644
--- a/userspace/init.c
+++ b/userspace/init.c
@@ -1,21 +1,20 @@
+
int main(int argc, char **argv)
{
int pid=fork();
- if(pid!=0)
+ if(pid==0)
{
- printf("fool-init: forked child (pid: %i) spawning a Fools Shell\n",pid);
execve("/bin/foolshell",0,0);
-
}
else
{
- // TODO: wait for child and respawn shell if needed!
- volatile int i=0;
- while(1)
- {
+ printf("fool-init: forked child (pid: %i) spawning a Fools Shell\n",pid);
+ int status;
+ int pid_ret=wait(&status);
+ puts("child state has changed!");
+ execve("/bin/init",0,0);
- }
}
return 0;
}