Date: Wed, 27 Jun 2001 13:08:57 +1000 (EST) From: Gregory Bond <gnb@itga.com.au> To: FreeBSD-gnats-submit@freebsd.org Subject: bin/28435: [patch] allow newsyslog to signal process groups Message-ID: <200106270308.f5R38vB21346@hellcat.itga.com.au>
next in thread | raw e-mail | index | archive | help
>Number: 28435 >Category: bin >Synopsis: [patch] allow newsyslog to signal process groups >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Tue Jun 26 20:20:01 PDT 2001 >Closed-Date: >Last-Modified: >Originator: Gregory Bond >Release: FreeBSD 4.3-STABLE i386 >Organization: ITG Australia Limited >Environment: System: FreeBSD hellcat.itga.com.au 4.3-STABLE FreeBSD 4.3-STABLE #21: Mon Jun 18 13:41:36 EST 2001 toor@hellcat.itga.com.au:/usr/obj/usr/src/sys/Hellcat i386 >Description: Newsyslog allows signalling of a single process when log files are rotated. But some applications have several processes that need to be signalled. >How-To-Repeat: Examine the source/man page. >Fix: The attached patch (against 4-Stable) allows the use of a negative PID in the pidfile to send the signal to a process group instead of a single process. See the kill(2) man page. Index: newsyslog.8 =================================================================== RCS file: /usr/ncvs/src/usr.sbin/newsyslog/newsyslog.8,v retrieving revision 1.23.2.4 diff -u -r1.23.2.4 newsyslog.8 --- newsyslog.8 2001/04/26 02:37:08 1.23.2.4 +++ newsyslog.8 2001/06/27 02:57:25 @@ -280,7 +280,12 @@ field is present, a .Ar signal_number is sent the process id contained in this -file. This field must start with "/" in order to be recognized +file. If this number is negative, it is treated as (the negative of) +a process group ID and the signal is sent to all members of that +process group. See the +.Xr kill 2 +man page for details. +This field must start with "/" in order to be recognized properly. .It Ar signal_number This optional field specifies Index: newsyslog.c =================================================================== RCS file: /usr/ncvs/src/usr.sbin/newsyslog/newsyslog.c,v retrieving revision 1.25.2.2 diff -u -r1.25.2.2 newsyslog.c --- newsyslog.c 2000/10/20 00:44:27 1.25.2.2 +++ newsyslog.c 2001/06/27 02:55:37 @@ -738,7 +738,8 @@ else { if (fgets(line, BUFSIZ, f)) { pid = atol(line); - if (pid < MIN_PID || pid > MAX_PID) { + if (pid >= 0 && (pid < MIN_PID || pid > MAX_PID) || + pid < 0 && (pid > -MIN_PID || pid < -MAX_PID)) { warnx("preposterous process number: %d", (int) pid); pid = 0; } >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200106270308.f5R38vB21346>