summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS1
-rw-r--r--pgrep.18
-rw-r--r--pgrep.c2
3 files changed, 9 insertions, 2 deletions
diff --git a/NEWS b/NEWS
index e3e7148..d395bc0 100644
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,7 @@ procps-ng-NEXT
* library
Re-add elogind support merge #151
Used memory is Total - Available
+ * pidwait: Better warning if pidfd_open not implemented
* pmap: Dont reuse stdin filehandle issue #231
* ps: threads again display when -L is used with -q issue #234
* ps: proper aix format string behavior was restored
diff --git a/pgrep.1 b/pgrep.1
index e29e6e1..5e1db7f 100644
--- a/pgrep.1
+++ b/pgrep.1
@@ -7,7 +7,7 @@
.\" the Free Software Foundation; either version 2 of the License, or
.\" (at your option) any later version.
.\"
-.TH PGREP "1" "2021-12-25" "procps-ng" "User Commands"
+.TH PGREP "1" "2022-07-18" "procps-ng" "User Commands"
.SH NAME
pgrep, pkill, pidwait \- look up, signal, or wait for processes based on name and other attributes
.SH SYNOPSIS
@@ -281,7 +281,11 @@ can not be combined. Let
me know if you need to do this.
.PP
Defunct processes are reported.
-
+.PP
+.B pidwait
+requires the
+.BR pidfd_open (2)
+system call which first appeared in Linux 5.3.
.SH "SEE ALSO"
.BR ps (1),
.BR regex (7),
diff --git a/pgrep.c b/pgrep.c
index 328873b..3a01c78 100644
--- a/pgrep.c
+++ b/pgrep.c
@@ -1064,6 +1064,8 @@ int main (int argc, char **argv)
printf(_("waiting for %s (pid %lu)\n"), procs[i].str, procs[i].num);
int pidfd = pidfd_open(procs[i].num, 0);
if (pidfd == -1) {
+ if (errno == ENOSYS)
+ xerrx(EXIT_FAILURE, _("pidfd_open() not implemented in Linux < 5.3"));
/* ignore ESRCH, same as pkill */
if (errno != ESRCH)
xwarn(_("opening pid %ld failed"), procs[i].num);