From owner-freebsd-bugs Tue Mar 18 10:30:04 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id KAA16255 for bugs-outgoing; Tue, 18 Mar 1997 10:30:04 -0800 (PST) Received: (from gnats@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id KAA16249; Tue, 18 Mar 1997 10:30:02 -0800 (PST) Date: Tue, 18 Mar 1997 10:30:02 -0800 (PST) Message-Id: <199703181830.KAA16249@freefall.freebsd.org> To: freebsd-bugs Cc: From: nsayer@quack.kfu.com Subject: Re: kern/1711: kernel logging of signaled processes should be optional Reply-To: nsayer@quack.kfu.com Sender: owner-bugs@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk The following reply was made to PR kern/1711; it has been noted by GNATS. From: nsayer@quack.kfu.com To: freebsd-gnats-submit@freebsd.org Cc: Subject: Re: kern/1711: kernel logging of signaled processes should be optional Date: Tue, 18 Mar 1997 10:20:52 -0800 (PST) Ok, then here is the sysctl version of the same fix. It is not yet present in 2.2-RELEASE, and this patch does require some fuzz to apply, but it does apply and work: *** kern/kern_sig.c.orig Tue Jul 9 11:12:37 1996 --- kern/kern_sig.c Thu Oct 3 16:40:32 1996 *************** *** 61,66 **** --- 61,67 ---- #include #include #include + #include #include *************** *** 1188,1193 **** --- 1189,1196 ---- * If dumping core, save the signal number for the debugger. Calls exit and * does not return. */ + int kern_logsigexit=1; + void sigexit(p, signum) register struct proc *p; *************** *** 1205,1219 **** */ if (coredump(p) == 0) signum |= WCOREFLAG; ! log(LOG_INFO, "pid %d (%s), uid %d: exited on signal %d%s\n", ! p->p_pid, p->p_comm, ! p->p_cred && p->p_ucred ? p->p_ucred->cr_uid : -1, ! signum &~ WCOREFLAG, ! signum & WCOREFLAG ? " (core dumped)" : ""); } exit1(p, W_EXITCODE(0, signum)); /* NOTREACHED */ } /* * Dump core, into a file named "progname.core", unless the process was --- 1208,1225 ---- */ if (coredump(p) == 0) signum |= WCOREFLAG; ! if (kern_logsigexit) ! log(LOG_INFO, "pid %d (%s), uid %d: exited on signal %d%s\n", ! p->p_pid, p->p_comm, ! p->p_cred && p->p_ucred ? p->p_ucred->cr_uid : -1, ! signum &~ WCOREFLAG, ! signum & WCOREFLAG ? " (core dumped)" : ""); } exit1(p, W_EXITCODE(0, signum)); /* NOTREACHED */ } + + SYSCTL_INT(_kern, KERN_LOGSIGEXIT, logsigexit, CTLFLAG_RW, &kern_logsigexit, 0, ""); /* * Dump core, into a file named "progname.core", unless the process was *** sys/sysctl.h.orig Thu Jul 25 11:02:14 1996 --- sys/sysctl.h Thu Oct 3 16:20:40 1996 *************** *** 223,229 **** #define KERN_MAXSOCKBUF 31 /* int: max size of a socket buffer */ #define KERN_PS_STRINGS 32 /* int: address of PS_STRINGS */ #define KERN_USRSTACK 33 /* int: address of USRSTACK */ ! #define KERN_MAXID 34 /* number of valid kern ids */ #define CTL_KERN_NAMES { \ { 0, 0 }, \ --- 223,230 ---- #define KERN_MAXSOCKBUF 31 /* int: max size of a socket buffer */ #define KERN_PS_STRINGS 32 /* int: address of PS_STRINGS */ #define KERN_USRSTACK 33 /* int: address of USRSTACK */ ! #define KERN_LOGSIGEXIT 34 /* int: do we log sigexit procs? */ ! #define KERN_MAXID 35 /* number of valid kern ids */ #define CTL_KERN_NAMES { \ { 0, 0 }, \ *************** *** 260,265 **** --- 261,267 ---- { "maxsockbuf", CTLTYPE_INT }, \ { "ps_strings", CTLTYPE_INT }, \ { "usrstack", CTLTYPE_INT }, \ + { "logsigexit", CTLTYPE_INT }, \ } /*