]> granicus.if.org Git - procps-ng/commitdiff
Merge commit 'refs/merge-requests/13' of git://gitorious.org/procps/procps into merge...
authorCraig Small <csmall@enc.com.au>
Wed, 11 Sep 2013 11:34:05 +0000 (21:34 +1000)
committerCraig Small <csmall@enc.com.au>
Wed, 11 Sep 2013 11:34:05 +0000 (21:34 +1000)
Conflicts:
pgrep.c
ps/output.c
ps/ps.1

1  2 
pgrep.c
proc/readproc.c
ps/output.c
ps/ps.1
skill.c

diff --cc pgrep.c
Simple merge
diff --cc proc/readproc.c
Simple merge
diff --cc ps/output.c
index d457a89cf1d6b6c1a7a16e610d78459dbbcb3e65,1d05fbb6a7b90b8a97a4971632bac27ce08f3089..2e9056e54b81e29f74feb48c35bba6021bd2f90c
@@@ -1173,112 -1183,23 +1187,128 @@@ static int pr_sgi_p(char *restrict cons
    return snprintf(outbuf, COLWID, "*");
  }
  
 +#ifdef WITH_SYSTEMD
 +/************************* Systemd stuff ********************************/
 +static int pr_sd_unit(char *restrict const outbuf, const proc_t *restrict const pp){
 +  int r;
 +  size_t len;
 +  char *unit;
 +
 +  r = sd_pid_get_unit(pp->tgid, &unit);
 +  if(r<0) goto fail;
 +  len = snprintf(outbuf, COLWID, "%s", unit);
 +  free(unit);
 +  return len;
 +
 +fail:
 +  outbuf[0] = '-';
 +  outbuf[1] = '\0';
 +  return 1;
 +}
 +
 +static int pr_sd_session(char *restrict const outbuf, const proc_t *restrict const pp){
 +  int r;
 +  size_t len;
 +  char *session;
 +
 +  r = sd_pid_get_session(pp->tgid, &session);
 +  if(r<0) goto fail;
 +  len = snprintf(outbuf, COLWID, "%s", session);
 +  free(session);
 +  return len;
 +
 +fail:
 +  outbuf[0] = '-';
 +  outbuf[1] = '\0';
 +  return 1;
 +}
 +
 +static int pr_sd_ouid(char *restrict const outbuf, const proc_t *restrict const pp){
 +  int r;
 +  size_t len;
 +  uid_t ouid;
 +
 +  r = sd_pid_get_owner_uid(pp->tgid, &ouid);
 +  if(r<0) goto fail;
 +  return snprintf(outbuf, COLWID, "%d", ouid);
 +
 +fail:
 +  outbuf[0] = '-';
 +  outbuf[1] = '\0';
 +  return 1;
 +}
 +
 +static int pr_sd_machine(char *restrict const outbuf, const proc_t *restrict const pp){
 +  int r;
 +  size_t len;
 +  char *machine;
  
 +  r = sd_pid_get_machine_name(pp->tgid, &machine);
 +  if(r<0) goto fail;
 +  len = snprintf(outbuf, COLWID, "%s", machine);
 +  free(machine);
 +  return len;
 +
 +fail:
 +  outbuf[0] = '-';
 +  outbuf[1] = '\0';
 +  return 1;
 +}
 +
 +static int pr_sd_uunit(char *restrict const outbuf, const proc_t *restrict const pp){
 +  int r;
 +  size_t len;
 +  char *unit;
 +
 +  r = sd_pid_get_user_unit(pp->tgid, &unit);
 +  if(r<0) goto fail;
 +  len = snprintf(outbuf, COLWID, "%s", unit);
 +  free(unit);
 +  return len;
 +
 +fail:
 +  outbuf[0] = '-';
 +  outbuf[1] = '\0';
 +  return 1;
 +}
 +
 +static int pr_sd_seat(char *restrict const outbuf, const proc_t *restrict const pp){
 +  int r;
 +  size_t len;
 +  char *session;
 +  char *seat;
 +  r = sd_pid_get_session(pp->tgid, &session);
 +  if(r<0) goto fail;
 +  r = sd_session_get_seat(session, &seat);
 +  free(session);
 +  if(r<0) goto fail;
 +  len = snprintf(outbuf, COLWID, "%s", seat);
 +  free(seat);
 +  return len;
 +
 +fail:
 +  outbuf[0] = '-';
 +  outbuf[1] = '\0';
 +  return 1;
 +}
 +
 +#endif
+ /************************ Linux namespaces ******************************/
+ #define _pr_ns(NAME, ID)\
+ static int pr_##NAME(char *restrict const outbuf, const proc_t *restrict const pp) {\
+   if (pp->ns[ID])\
+     return snprintf(outbuf, COLWID, "%li", pp->ns[ID]);\
+   else\
+     return snprintf(outbuf, COLWID, "-");\
+ }
+ _pr_ns(ipcns, IPCNS);
+ _pr_ns(mntns, MNTNS);
+ _pr_ns(netns, NETNS);
+ _pr_ns(pidns, PIDNS);
+ _pr_ns(userns, USERNS);
+ _pr_ns(utsns, UTSNS);
  /****************** FLASK & seLinux security stuff **********************/
  // move the bulk of this to libproc sometime
  
@@@ -1698,9 -1605,7 +1734,10 @@@ static const format_struct format_array
  {"usrpri",    "UPR",     pr_nop,      sr_nop,     3,   0,    DEC, TO|RIGHT}, /*upr*/
  {"util",      "C",       pr_c,        sr_pcpu,    2,   0,    SGI, ET|RIGHT}, // not sure about "C"
  {"utime",     "UTIME",   pr_nop,      sr_utime,   6,   0,    LNx, ET|RIGHT},
+ {"utsns",     "UTSNS",   pr_utsns,    sr_utsns,  10,  NS,    LNX, ET|RIGHT},
 +#ifdef WITH_SYSTEMD
 +{"uunit",     "UUNIT",   pr_sd_uunit, sr_nop,    31,   0,    LNX, ET|LEFT},
 +#endif
  {"vm_data",   "DATA",    pr_nop,      sr_vm_data, 5,   0,    LNx, PO|RIGHT},
  {"vm_exe",    "EXE",     pr_nop,      sr_vm_exe,  5,   0,    LNx, PO|RIGHT},
  {"vm_lib",    "LIB",     pr_nop,      sr_vm_lib,  5,   0,    LNx, PO|RIGHT},
diff --cc ps/ps.1
index 6311b48b00273febd808dcd6c9d6c20f107a3a73,fd77413550e27255574378e135d8c4de1d4400f6..80e5ce8753fdd50ea79297921886b369a0055476
+++ b/ps/ps.1
  .BR euser , \ uname ).
  T}
  
+ userns        USERNS  T{
+ Unique inode number describing the namespace the process belongs to. See namespaces(7).
+ T}
+ utsns UTSNS   T{
+ Unique inode number describing the namespace the process belongs to. See namespaces(7).
+ T}
 +uunit UUNIT   T{
 +displays systemd user unit which a process belongs to.
 +T}
 +
  vsize VSZ     T{
  see
  .BR vsz .
diff --cc skill.c
Simple merge