summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2018-03-24 00:26:42 +0000
committerjhb <jhb@FreeBSD.org>2018-03-24 00:26:42 +0000
commitf55b9fe8a5d82d4fed9ca064ab802f85a609723e (patch)
tree15ad73fdf2ce9a5e63e01b3b15072b08fd791b88 /bin
parent569ef438d1bc2dae13d05f289416ed18185aabc8 (diff)
downloadFreeBSD-src-f55b9fe8a5d82d4fed9ca064ab802f85a609723e.zip
FreeBSD-src-f55b9fe8a5d82d4fed9ca064ab802f85a609723e.tar.gz
MFC 330872:
Add a "jail" keyword to list the name of a jail rather than its ID.
Diffstat (limited to 'bin')
-rw-r--r--bin/ps/extern.h1
-rw-r--r--bin/ps/keyword.c1
-rw-r--r--bin/ps/print.c14
-rw-r--r--bin/ps/ps.14
4 files changed, 19 insertions, 1 deletions
diff --git a/bin/ps/extern.h b/bin/ps/extern.h
index ef39153..f916f830 100644
--- a/bin/ps/extern.h
+++ b/bin/ps/extern.h
@@ -55,6 +55,7 @@ char *emulname(KINFO *, VARENT *);
VARENT *find_varentry(VAR *);
const char *fmt_argv(char **, char *, char *, size_t);
double getpcpu(const KINFO *);
+char *jailname(KINFO *, VARENT *);
char *kvar(KINFO *, VARENT *);
char *label(KINFO *, VARENT *);
char *loginclass(KINFO *, VARENT *);
diff --git a/bin/ps/keyword.c b/bin/ps/keyword.c
index f01df6c..d81453c 100644
--- a/bin/ps/keyword.c
+++ b/bin/ps/keyword.c
@@ -108,6 +108,7 @@ static VAR var[] = {
{"inblk", "INBLK", NULL, "read-blocks", USER, rvar, ROFF(ru_inblock),
LONG, "ld", 0},
{"inblock", "", "inblk", NULL, 0, NULL, 0, CHAR, NULL, 0},
+ {"jail", "JAIL", NULL, "jail-name", LJUST, jailname, 0, CHAR, NULL, 0},
{"jid", "JID", NULL, "jail-id", 0, kvar, KOFF(ki_jid), INT, "d", 0},
{"jobc", "JOBC", NULL, "job-control-count", 0, kvar, KOFF(ki_jobc),
SHORT, "d", 0},
diff --git a/bin/ps/print.c b/bin/ps/print.c
index b886fa0..1105832 100644
--- a/bin/ps/print.c
+++ b/bin/ps/print.c
@@ -51,6 +51,7 @@ __FBSDID("$FreeBSD$");
#include <err.h>
#include <grp.h>
+#include <jail.h>
#include <langinfo.h>
#include <locale.h>
#include <math.h>
@@ -840,3 +841,16 @@ loginclass(KINFO *k, VARENT *ve __unused)
}
return (strdup(k->ki_p->ki_loginclass));
}
+
+char *
+jailname(KINFO *k, VARENT *ve __unused)
+{
+ char *name;
+
+ if (k->ki_p->ki_jid == 0)
+ return (strdup("-"));
+ name = jail_getname(k->ki_p->ki_jid);
+ if (name == NULL)
+ return (strdup("-"));
+ return (name);
+}
diff --git a/bin/ps/ps.1 b/bin/ps/ps.1
index 88026c6..6fa9d9e 100644
--- a/bin/ps/ps.1
+++ b/bin/ps/ps.1
@@ -29,7 +29,7 @@
.\" @(#)ps.1 8.3 (Berkeley) 4/18/94
.\" $FreeBSD$
.\"
-.Dd January 23, 2018
+.Dd March 13, 2018
.Dt PS 1
.Os
.Sh NAME
@@ -566,6 +566,8 @@ group name (from egid) (alias
.It Cm inblk
total blocks read (alias
.Cm inblock )
+.It Cm jail
+jail name
.It Cm jid
jail ID
.It Cm jobc
OpenPOWER on IntegriCloud