- signal (SIGINT, SIG_IGN);
- signal (SIGQUIT, SIG_IGN);
- if (catch_susp)
- signal(SIGTSTP, SIG_DFL);
- wait (0);
- signal (SIGINT, end_it);
- signal (SIGQUIT, onquit);
- if (catch_susp)
- signal(SIGTSTP, onsusp);
+ if (id > 0) {
+ signal (SIGINT, SIG_IGN);
+ signal (SIGQUIT, SIG_IGN);
+ if (catch_susp)
+ signal(SIGTSTP, SIG_DFL);
+ while (wait(0) > 0);
+ signal (SIGINT, end_it);
+ signal (SIGQUIT, onquit);
+ if (catch_susp)
+ signal(SIGTSTP, onsusp);
+ } else
+ write(2, "can't fork\n", 11);