Recognise the -l switch with pkill - list kill command(s) used.

PR:		143558
Submitted by:	eitanadlerlist at gmail dot com
MFC after:	3 weeks
This commit is contained in:
Brian Somers 2010-06-20 08:48:30 +00:00
parent f0cc075c4f
commit 3ba0e47047
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=209363
2 changed files with 16 additions and 8 deletions

View File

@ -156,14 +156,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

View File

@ -128,7 +128,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 *);
@ -242,8 +242,6 @@ main(int argc, char **argv)
criteria = 1;
break;
case 'l':
if (!pgrep)
usage();
longfmt = 1;
break;
case 'n':
@ -530,16 +528,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);
}
@ -552,7 +558,7 @@ usage(void)
if (pgrep)
ustr = "[-LSfilnoqvx] [-d delim]";
else
ustr = "[-signal] [-ILfinovx]";
ustr = "[-signal] [-ILfilnovx]";
fprintf(stderr,
"usage: %s %s [-F pidfile] [-G gid] [-M core] [-N system]\n"