svn commit: r209912 - stable/8/bin/pkill

Brian Somers brian at FreeBSD.org
Sun Jul 11 21:50:06 UTC 2010


Author: brian
Date: Sun Jul 11 21:50:05 2010
New Revision: 209912
URL: http://svn.freebsd.org/changeset/base/209912

Log:
  MFC r209363: Recognise the -l switch in pkill.
  
  PR:		143558
  Submitted by:	eitanadlerlist at gmail dot com

Modified:
  stable/8/bin/pkill/pkill.1
  stable/8/bin/pkill/pkill.c
Directory Properties:
  stable/8/bin/pkill/   (props changed)

Modified: stable/8/bin/pkill/pkill.1
==============================================================================
--- stable/8/bin/pkill/pkill.1	Sun Jul 11 21:47:38 2010	(r209911)
+++ stable/8/bin/pkill/pkill.1	Sun Jul 11 21:50:05 2010	(r209912)
@@ -163,14 +163,16 @@ The value
 matches processes not in jail.
 .It Fl l
 Long output.
-Print the process name in addition to the process ID for each matching
+For
+.Nm pgrep ,
+print the process name in addition to the process ID for each matching
 process.
 If used in conjunction with
 .Fl f ,
 print the process ID and the full argument list for each matching process.
-This option can only be used with the
-.Nm pgrep
-command.
+For
+.Nm pkill ,
+display the kill command used for each process killed.
 .It Fl n
 Select only the newest (most recently started) of the matching processes.
 .It Fl o

Modified: stable/8/bin/pkill/pkill.c
==============================================================================
--- stable/8/bin/pkill/pkill.c	Sun Jul 11 21:47:38 2010	(r209911)
+++ stable/8/bin/pkill/pkill.c	Sun Jul 11 21:50:05 2010	(r209912)
@@ -133,7 +133,7 @@ main(int argc, char **argv)
 {
 	char buf[_POSIX2_LINE_MAX], *mstr, **pargv, *p, *q, *pidfile;
 	const char *execf, *coref;
-	int ancestors, debug_opt;
+	int ancestors, debug_opt, did_action;
 	int i, ch, bestidx, rv, criteria, pidfromfile, pidfilelock;
 	size_t jsz;
 	int (*action)(const struct kinfo_proc *);
@@ -246,8 +246,6 @@ main(int argc, char **argv)
 			criteria = 1;
 			break;
 		case 'l':
-			if (!pgrep)
-				usage();
 			longfmt = 1;
 			break;
 		case 'n':
@@ -529,16 +527,24 @@ main(int argc, char **argv)
 	/*
 	 * Take the appropriate action for each matched process, if any.
 	 */
+	did_action = 0;
 	for (i = 0, rv = 0, kp = plist; i < nproc; i++, kp++) {
 		if (PSKIP(kp))
 			continue;
 		if (selected[i]) {
+			if (longfmt && !pgrep) {
+				did_action = 1;
+				printf("kill -%d %d\n", signum, kp->ki_pid);
+			}
 			if (inverse)
 				continue;
 		} else if (!inverse)
 			continue;
 		rv |= (*action)(kp);
 	}
+	if (!did_action && !pgrep && longfmt)
+		fprintf(stderr,
+		    "No matching processes belonging to you were found\n");
 
 	exit(rv ? STATUS_MATCH : STATUS_NOMATCH);
 }
@@ -551,7 +557,7 @@ usage(void)
 	if (pgrep)
 		ustr = "[-LSfilnovx] [-d delim]";
 	else
-		ustr = "[-signal] [-ILfinovx]";
+		ustr = "[-signal] [-ILfilnovx]";
 
 	fprintf(stderr,
 		"usage: %s %s [-F pidfile] [-G gid] [-M core] [-N system]\n"


More information about the svn-src-all mailing list