diff --git a/NEWS b/NEWS index 699b5a96..1a48e70e 100644 --- a/NEWS +++ b/NEWS @@ -2,7 +2,8 @@ procps-3.2.7 --> procps-3.2.8 ps: document SCHED_BATCH and add "see also" for stime ps: man page less ambiguous -top: normal exit code should be 0 #341272 +top: normal exit code should be 0 #341272 #354255 +pgrep: usage error should exit with 2 #413383 procps-3.2.6 --> procps-3.2.7 diff --git a/pgrep.c b/pgrep.c index e4fda6e8..bbb7cd11 100644 --- a/pgrep.c +++ b/pgrep.c @@ -70,18 +70,21 @@ static union el *opt_ruid = NULL; static char *opt_pattern = NULL; static char *opt_pidfile = NULL; - static int usage (int opt) NORETURN; static int usage (int opt) { + int err = (opt=='?'); /* getopt() uses '?' to mark an error */ + FILE *fp = err ? stderr : stdout; + if (i_am_pkill) - fprintf (stderr, "Usage: pkill [-SIGNAL] [-fvx] "); + fprintf (fp, "Usage: pkill [-SIGNAL] [-fvx] "); else - fprintf (stderr, "Usage: pgrep [-flvx] [-d DELIM] "); - fprintf (stderr, "[-n|-o] [-P PPIDLIST] [-g PGRPLIST] [-s SIDLIST]\n" + fprintf (fp, "Usage: pgrep [-flvx] [-d DELIM] "); + fprintf (fp, "[-n|-o] [-P PPIDLIST] [-g PGRPLIST] [-s SIDLIST]\n" "\t[-u EUIDLIST] [-U UIDLIST] [-G GIDLIST] [-t TERMLIST] " "[PATTERN]\n"); - exit (opt == '?' ? EXIT_SUCCESS : EXIT_USAGE); + + exit(err ? EXIT_USAGE : EXIT_SUCCESS); }