diff options
| author | Michal Idziorek <m.i@gmx.at> | 2014-12-02 01:02:49 +0100 |
|---|---|---|
| committer | Michal Idziorek <m.i@gmx.at> | 2014-12-02 01:02:49 +0100 |
| commit | c2c03f41e078481921bad82487eded0fc51ebb59 (patch) | |
| tree | 1e310556c9a809aea112728bae9e0a6807ee0ba2 /userspace/init.c | |
| parent | f20db37ca17245d5d20302a1ac1da347de5c3607 (diff) | |
further work on fork and friends
Diffstat (limited to 'userspace/init.c')
| -rw-r--r-- | userspace/init.c | 15 |
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; } |
