bin/143558: [patch] Add verbose option to pkill(1)
Eitan Adler
eitanadlerlist at gmail.com
Sat Feb 27 18:50:04 UTC 2010
The following reply was made to PR bin/143558; it has been noted by GNATS.
From: Eitan Adler <eitanadlerlist at gmail.com>
To: bug-followup at freebsd.org, eitanadlerlist at gmail.com
Cc:
Subject: Re: bin/143558: [patch] Add verbose option to pkill(1)
Date: Sat, 27 Feb 2010 20:48:55 +0200
Minor fix to my patch:
My first patch had
+ if (!didAction && !pgrep)
which I changed to
+ if (!didAction && !pgrep && longfmt)
when I realized that the message that nothing happened would always be
shown if -l was not specified
Index: pkill.1
===================================================================
--- pkill.1 (revision 203347)
+++ pkill.1 (working copy)
@@ -168,9 +168,9 @@
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.
+If used in conjunction with the
+.Nm pkill
+command, it lists the signal sent as well.
.It Fl n
Select only the newest (most recently started) of the matching processes.
.It Fl o
Index: pkill.c
===================================================================
--- pkill.c (revision 203347)
+++ pkill.c (working copy)
@@ -182,7 +182,7 @@
pidfilelock = 0;
execf = coref = _PATH_DEVNULL;
- while ((ch = getopt(argc, argv,
"DF:G:ILM:N:P:SU:ad:fg:ij:lnos:t:u:vx")) != -1)
+ while ((ch = getopt(argc, argv,
"DF:G:ILM:N:P:SU:ad:fg:ilj:lnos:t:u:vx")) != -1)
switch (ch) {
case 'D':
debug_opt++;
@@ -245,8 +245,6 @@
criteria = 1;
break;
case 'l':
- if (!pgrep)
- usage();
longfmt = 1;
break;
case 'n':
@@ -528,16 +526,26 @@
/*
* Take the appropriate action for each matched process, if any.
*/
+ int didAction = 0;
for (i = 0, rv = 0, kp = plist; i < nproc; i++, kp++) {
if (PSKIP(kp))
continue;
if (selected[i]) {
+ if (longfmt)
+ {
+ didAction = 1;
+ printf("kill -%d %d\n",signum,kp->ki_pid);
+ }
if (inverse)
continue;
} else if (!inverse)
continue;
rv |= (*action)(kp);
}
+ if (!didAction && !pgrep && longfmt)
+ {
+ printf("No matching processes belonging to you were found\n");
+ }
exit(rv ? STATUS_MATCH : STATUS_NOMATCH);
}
@@ -550,7 +558,7 @@
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 freebsd-bugs
mailing list