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