From fukui@tpx24.pssys.flab.fujitsu.co.jp  Thu Sep  5 18:57:13 2002
Return-Path: <fukui@tpx24.pssys.flab.fujitsu.co.jp>
Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id 22CBC37B400
	for <FreeBSD-gnats-submit@freebsd.org>; Thu,  5 Sep 2002 18:57:13 -0700 (PDT)
Received: from fgwmail7.fujitsu.co.jp (fgwmail7.fujitsu.co.jp [192.51.44.37])
	by mx1.FreeBSD.org (Postfix) with ESMTP id E2ACA43E42
	for <FreeBSD-gnats-submit@freebsd.org>; Thu,  5 Sep 2002 18:57:11 -0700 (PDT)
	(envelope-from fukui@tpx24.pssys.flab.fujitsu.co.jp)
Received: from m1.gw.fujitsu.co.jp by fgwmail7.fujitsu.co.jp (8.9.3/3.7W-MX0205-Fujitsu Gateway)
	id KAA25017 for <FreeBSD-gnats-submit@freebsd.org>; Fri, 6 Sep 2002 10:57:10 +0900 (JST)
	(envelope-from fukui@tpx24.pssys.flab.fujitsu.co.jp)
Received: from dhcp1514.pssys.flab.fujitsu.co.jp by m1.gw.fujitsu.co.jp (8.9.3/3.7W-0208-Fujitsu Domain Master)
	id KAA27889 for <FreeBSD-gnats-submit@freebsd.org>; Fri, 6 Sep 2002 10:57:10 +0900 (JST)
	(envelope-from fukui@tpx24.pssys.flab.fujitsu.co.jp)
Received: from tpx24.pssys.flab.fujitsu.co.jp 
	by tpx24.pssys.flab.fujitsu.co.jp (8.12.6+3.5Wbeta/8.12.6) with ESMTP id g861v9cc001792
	(version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO);
	Fri, 6 Sep 2002 10:57:09 +0900 (JST)
	(envelope-from fukui@tpx24.pssys.flab.fujitsu.co.jp)
Message-Id: <200209060157.g861v9Me001791@tpx24.pssys.flab.fujitsu.co.jp>
Date: Fri, 6 Sep 2002 10:57:09 +0900 (JST)
From: Masayuki FUKUI <fukui@sonic.nm.fujitsu.co.jp>
Reply-To: Masayuki FUKUI <fukui@sonic.nm.fujitsu.co.jp>
To: FreeBSD-gnats-submit@freebsd.org
Cc: fukui@sonic.nm.fujitsu.co.jp
Subject: [PATCH] killall(1) : Add support for jailed processes in the host environment
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         42464
>Category:       bin
>Synopsis:       [PATCH] killall(1) : Add support for jailed processes in the host environment
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    mike
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Thu Sep 05 19:00:12 PDT 2002
>Closed-Date:    Tue Apr 08 20:30:46 PDT 2003
>Last-Modified:  Tue Apr 08 20:30:46 PDT 2003
>Originator:     Masayuki FUKUI
>Release:        FreeBSD 5.0-CURRENT i386
>Organization:
>Environment:
System: FreeBSD tpx24 5.0-CURRENT FreeBSD 5.0-CURRENT #0: Fri Aug 16 09:41:46 JST 2002 root@tpx24:/usr/src/sys/i386/compile/tpx24 i386

>Description:
	killall(1) cannot select jailed processes in the host environment.
	I made patch that adds support for jailed processes to killall(1).

	This patch adds the following two options.

		-h : Exclude jailed processes.
		-j : Include jailed processes only.

	(The mistake is found in man page of killall(1).
	 It is written, -h & -? for usage. However, those options are not used.)

>How-To-Repeat:
>Fix:
	I'm sorry, because I am not good at English, man page cannot be corrected.

--- patch begins here ---

--- usr.bin/killall.c.orig	Sun Jun 30 14:25:01 2002
+++ usr.bin/killall.c	Thu Sep  5 00:47:16 2002
@@ -52,7 +52,7 @@
 usage(void)
 {
 
-	fprintf(stderr, "usage: %s [-l] [-v] [-m] [-sig] [-u user] [-t tty] [-c cmd] [cmd]...\n", prog);
+	fprintf(stderr, "usage: %s [-l] [-v] [-m] [-h] [-j] [-sig] [-u user] [-t tty] [-c cmd] [cmd]...\n", prog);
 	fprintf(stderr, "At least one option or argument to specify processes must be given.\n");
 	exit(1);
 }
@@ -115,6 +115,8 @@
 	int		dflag = 0;
 	int		mflag = 0;
 	int		zflag = 0;
+	int		hflag = 0;
+	int		jflag = 0;
 	uid_t		uid = 0;
 	dev_t		tdev = 0;
 	char		thiscmd[MAXCOMLEN + 1];
@@ -182,6 +184,12 @@
 			case 'z':
 				zflag++;
 				break;
+			case 'h':
+				hflag++;
+				break;
+			case 'j':
+				jflag++;
+				break;
 			default:
 				if (isalpha(**av)) {
 					if (strncasecmp(*av, "sig", 3) == 0)
@@ -292,6 +300,10 @@
 
 	for (i = 0; i < nprocs; i++) {
 		if ((procs[i].ki_stat & SZOMB) == SZOMB && !zflag)
+			continue;
+		if (hflag && (procs[i].ki_flag & P_JAILED) == P_JAILED)
+			continue;
+		if (jflag && (procs[i].ki_flag & P_JAILED) != P_JAILED)
 			continue;
 		thispid = procs[i].ki_pid;
 		strncpy(thiscmd, procs[i].ki_comm, MAXCOMLEN);
--- patch ends here ---
>Release-Note:
>Audit-Trail:

From: Dmitry Morozovsky <marck@rinet.ru>
To: Masayuki FUKUI <fukui@sonic.nm.fujitsu.co.jp>
Cc: FreeBSD-gnats-submit@FreeBSD.ORG
Subject: Re: bin/42464: [PATCH] killall(1) : Add support for jailed processes
 in the host environment
Date: Fri, 6 Sep 2002 13:55:50 +0400 (MSD)

 On Fri, 6 Sep 2002, Masayuki FUKUI wrote:
 
 MF> 	killall(1) cannot select jailed processes in the host environment.
 MF> 	I made patch that adds support for jailed processes to killall(1).
 MF>
 MF> 	This patch adds the following two options.
 MF>
 MF> 		-h : Exclude jailed processes.
 MF> 		-j : Include jailed processes only.
 
 As far as I can see in your patch, and as you can't distinguish processes
 *between* different jails, you mail then killall processes only in all
 jails simultaneously. This drawback, I'm afraid, seriously degrades
 usefulness of the patch.
 
 Sincerely,
 D.Marck                                   [DM5020, DM268-RIPE, DM3-RIPN]
 ------------------------------------------------------------------------
 *** Dmitry Morozovsky --- D.Marck --- Wild Woozle --- marck@rinet.ru ***
 ------------------------------------------------------------------------
 
Responsible-Changed-From-To: freebsd-bugs->mike 
Responsible-Changed-By: mike 
Responsible-Changed-When: Fri Mar 21 16:19:02 PST 2003 
Responsible-Changed-Why:  
I have a more complete patch that allows one to specify specific jails. 
Over to me. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=42464 
State-Changed-From-To: open->closed 
State-Changed-By: mike 
State-Changed-When: Tue Apr 8 20:27:43 PDT 2003 
State-Changed-Why:  
As promised, a more complete solution has been committed.  It includes 
jls(8) to list jails, and adds -j to killall(1).  It will be in 
5.1-RELEASE. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=42464 
>Unformatted:
