x
This commit is contained in:
parent
f2ec6777bd
commit
95dad4c061
3 changed files with 21 additions and 15 deletions
16
user/init.c
16
user/init.c
|
@ -31,8 +31,20 @@ main(void)
|
|||
printf("init: exec sh failed\n");
|
||||
exit(1);
|
||||
}
|
||||
while((wpid=wait(0)) >= 0 && wpid != pid){
|
||||
//printf("zombie!\n");
|
||||
|
||||
for(;;){
|
||||
// this call to wait() returns if the shell exits,
|
||||
// or if a parentless process exits.
|
||||
wpid = wait((int *) 0);
|
||||
if(wpid == pid){
|
||||
// the shell exited; restart it.
|
||||
break;
|
||||
} else if(wpid < 0){
|
||||
printf("init: wait returned an error\n");
|
||||
exit(1);
|
||||
} else {
|
||||
// it was a parentless process; do nothing.
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Initial process execs /init.
|
||||
# Initial process that execs /init.
|
||||
# This code runs in user space.
|
||||
|
||||
#include "syscall.h"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue