Date: Thu, 4 Feb 2010 12:01:26 +0200 From: Eitan Adler <eitanadlerlist@gmail.com> To: Jason Spiro <jasonspiro4@gmail.com> Cc: freebsd-hackers@freebsd.org Subject: Re: [RFC] [patch] pkill verbose option Message-ID: <a0777e081002040201n70c20a30jcea19fc2509de6ab@mail.gmail.com> In-Reply-To: <loom.20100204T102100-858@post.gmane.org> References: <a0777e081002030700l53d9cae2v74a181315ed55277@mail.gmail.com> <alpine.BSF.2.00.1002031246160.37629@pragry.qngnvk.ybpny> <loom.20100204T102100-858@post.gmane.org>
next in thread | previous in thread | raw e-mail | index | archive | help
This patch hijacks pgrep's -l 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) + { + printf("No matching processes belonging to you were found\n"); + } exit(rv ? STATUS_MATCH : STATUS_NOMATCH); } On Thu, Feb 4, 2010 at 11:24 AM, Jason Spiro <jasonspiro4@gmail.com> wrote: > jhell <jhell <at> DataIX.net> writes: > > [snip] > > > > Now pkill -v sleep on my system actually causes my Xserver to exit with a > > unexpected signal 15. > > Yes. "pkill -v sleep" kills all your own processes except for sleep. As > root, > it kills all processes running on your machine except for sleep. > > -V is not a good choice of letter for this option: it's too easy to write > -v > instead by accident. -l (dash-ell), as jhell has suggested elsewhere in > this > thread, would be ideal, since it's lowercase and easy to type. If you > don't > like -l, you could choose to make it -D (for "Debug") instead. > > _______________________________________________ > freebsd-hackers@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers > To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org" >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?a0777e081002040201n70c20a30jcea19fc2509de6ab>