Index: bin/ps/ps.1 =================================================================== --- bin/ps/ps.1 +++ bin/ps/ps.1 @@ -29,7 +29,7 @@ .\" @(#)ps.1 8.3 (Berkeley) 4/18/94 .\" $FreeBSD$ .\" -.Dd June 27, 2020 +.Dd November 12, 2020 .Dt PS 1 .Os .Sh NAME @@ -175,7 +175,10 @@ Use .Fl J .Sy 0 -to display only host processes. +to display only host processes or +.Fl J +.Sy -1 +to display all jailed processes. This flag implies .Fl x by default. Index: bin/ps/ps.c =================================================================== --- bin/ps/ps.c +++ bin/ps/ps.c @@ -580,7 +580,8 @@ } if (jidlist.count > 0) { for (elem = 0; elem < jidlist.count; elem++) - if (kp->ki_jid == jidlist.l.jids[elem]) + if (kp->ki_jid == jidlist.l.jids[elem] || + (jidlist.l.jids[elem] == -1 && kp->ki_jid != 0)) goto keepit; } if (pgrplist.count > 0) { @@ -795,11 +796,15 @@ return (0); /* Do not add this value. */ } - tempid = jail_getid(elem); - if (tempid < 0) { - warnx("Invalid %s: %s", inf->lname, elem); - optfatal = 1; - return (0); + if (strcmp(elem, "-1") == 0) + tempid = -1; + else { + tempid = jail_getid(elem); + if (tempid < 0) { + warnx("Invalid %s: %s", inf->lname, elem); + optfatal = 1; + return (0); + } } if (inf->count >= inf->maxcount)