--- FreeWnn-1.1.1-a017.orig/Xsi/Wnn/jserver/de.c Mon Mar 20 17:31:43 2000 +++ FreeWnn-1.1.1-a017/Xsi/Wnn/jserver/de.c Tue Aug 29 12:06:47 2000 @@ -185,6 +185,19 @@ char cmd_name[80]; +#ifndef NOTFORK +static void father_sighandler (const int sig) +{ + if (signal(sig, SIG_DFL) == SIG_ERR) + _exit (2); + + if (sig == SIGTERM) + _exit(0); + else + _exit(-1); +} +#endif + /* No arguments are used. Only options. */ int main (argc, argv) @@ -228,14 +241,14 @@ #ifndef NOTFORK if (fork ()) { - signal (SIGCHLD, _exit); + signal (SIGCHLD, father_sighandler); signal (SIGHUP, SIG_IGN); signal (SIGINT, SIG_IGN); signal (SIGQUIT, SIG_IGN); #ifdef SIGTSTP signal (SIGTSTP, SIG_IGN); #endif - signal (SIGTERM, _exit); + signal (SIGTERM, father_sighandler); pause (); } #endif /* !NOTFORK */