diff options
author | Richard Basch <probe@mit.edu> | 1994-08-18 16:00:09 +0000 |
---|---|---|
committer | Richard Basch <probe@mit.edu> | 1994-08-18 16:00:09 +0000 |
commit | 6d85e8458e7fefb2984b9167853f3d73d933ecc7 (patch) | |
tree | ebfb769c5ac533770f361bf5a27a092037d7f67e /zwgc/main.c | |
parent | 05feef22880a2a6490d5568ca6db033892ce5eee (diff) |
Changed the SIGCHLD signal handling for SOLARIS so that we do not have
defunct processes (zwgc's children, such as zmailnotify)
Diffstat (limited to 'zwgc/main.c')
-rw-r--r-- | zwgc/main.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/zwgc/main.c b/zwgc/main.c index 2a66d59..f529664 100644 --- a/zwgc/main.c +++ b/zwgc/main.c @@ -399,11 +399,16 @@ static void setup_signals(dofork) sigaction(SIGTERM, &sa, (struct sigaction *)0); sigaction(SIGHUP, &sa, (struct sigaction *)0); - sa.sa_handler = signal_child; - sigaction(SIGCHLD, &sa, (struct sigaction *)0); - sa.sa_handler = SIG_IGN; sigaction(SIGPIPE, &sa, (struct sigaction *)0); + +#ifdef SOLARIS + sa.sa_handler = SIG_IGN; + sa.sa_flags = SA_NOCLDSTOP; +#else + sa.sa_handler = signal_child; +#endif + sigaction(SIGCHLD, &sa, (struct sigaction *)0); #else if (dofork) { /* Ignore keyboard signals if forking. Bad things will happen. */ |