summaryrefslogtreecommitdiff
path: root/zwgc/main.c
diff options
context:
space:
mode:
authorGravatar Richard Basch <probe@mit.edu>1994-08-18 16:00:09 +0000
committerGravatar Richard Basch <probe@mit.edu>1994-08-18 16:00:09 +0000
commit6d85e8458e7fefb2984b9167853f3d73d933ecc7 (patch)
treeebfb769c5ac533770f361bf5a27a092037d7f67e /zwgc/main.c
parent05feef22880a2a6490d5568ca6db033892ce5eee (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.c11
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. */