]> granicus.if.org Git - procps-ng/commitdiff
ps: add code to exploit the new library LXC containers
authorJim Warner <james.warner@comcast.net>
Sat, 13 Jun 2015 05:00:00 +0000 (00:00 -0500)
committerCraig Small <csmall@enc.com.au>
Sun, 14 Jun 2015 05:36:06 +0000 (15:36 +1000)
Reference(s):
https://bugs.launchpad.net/ubuntu/+source/lxc/+bug/1424253
https://bugs.launchpad.net/ubuntu/+source/procps/+bug/1424253

Signed-off-by: Jim Warner <james.warner@comcast.net>
ps/output.c

index 326dbe7ee37cb3636024c17b281e399b01719c00..c47f057d5d43f0efc55cddd716319397aeea0fd8 100644 (file)
@@ -226,6 +226,8 @@ CMP_NS(pidns, PIDNS);
 CMP_NS(userns, USERNS);
 CMP_NS(utsns, UTSNS);
 
+CMP_STR(lxcname)
+
 /* approximation to: kB of address space that could end up in swap */
 static int sr_swapable(const proc_t* P, const proc_t* Q) {
   unsigned long p_swapable = P->vm_data + P->vm_stack;
@@ -1229,6 +1231,11 @@ _pr_ns(pidns, PIDNS);
 _pr_ns(userns, USERNS);
 _pr_ns(utsns, UTSNS);
 
+/************************ Linux containers ******************************/
+static int pr_lxcname(char *restrict const outbuf, const proc_t *restrict const pp){
+  return snprintf(outbuf, COLWID, "%s", pp->lxcname);
+}
+
 /****************** FLASK & seLinux security stuff **********************/
 // move the bulk of this to libproc sometime
 
@@ -1391,6 +1398,7 @@ static int pr_t_left2(char *restrict const outbuf, const proc_t *restrict const
 #define GRP PROC_FILLGRP     /* gid_t -> group names */
 #define WCH PROC_FILLWCHAN   /* do WCHAN lookup */
 #define NS  PROC_FILLNS      /* read namespace information */
+#define LXC PROC_FILL_LXC    /* value the lxc name field */
 #ifdef WITH_SYSTEMD
 #define SD  PROC_FILLSYSTEMD /* retrieve systemd stuff */
 #endif
@@ -1499,6 +1507,7 @@ static const format_struct format_array[] = {
 {"luid",      "LUID",    pr_nop,      sr_nop,     5,   0,    LNX, ET|RIGHT}, /* login ID */
 {"luser",     "LUSER",   pr_nop,      sr_nop,     8, USR,    LNX, ET|USER}, /* login USER */
 {"lwp",       "LWP",     pr_tasks,    sr_tasks,   5,   0,    SUN, TO|PIDMAX|RIGHT},
+{"lxc",       "LXC",     pr_lxcname,  sr_lxcname, 8, LXC,    LNX, ET|LEFT},
 {"m_drs",     "DRS",     pr_drs,      sr_drs,     5, MEM,    LNx, PO|RIGHT},
 {"m_dt",      "DT",      pr_nop,      sr_dt,      4, MEM,    LNx, PO|RIGHT},
 {"m_lrs",     "LRS",     pr_nop,      sr_lrs,     5, MEM,    LNx, PO|RIGHT},