/proc/[pid]/status
http://man7.org/linux/man-pages/man5/proc.5.html
/proc/[pid]/status Provides much of the information in /proc/[pid]/stat and /proc/[pid]/statm in a format that's easier for humans to parse. Here's an example: $ cat /proc/$$/status Name: bash Umask: 0022 State: S (sleeping) Tgid: 17248 Ngid: 0 Pid: 17248 PPid: 17200 TracerPid: 0 Uid: 1000 1000 1000 1000 Gid: 100 100 100 100 FDSize: 256 Groups: 16 33 100 NStgid: 17248 NSpid: 17248 NSpgid: 17248 NSsid: 17200 VmPeak: 131168 kB VmSize: 131168 kB VmLck: 0 kB VmPin: 0 kB VmHWM: 13484 kB VmRSS: 13484 kB RssAnon: 10264 kB RssFile: 3220 kB RssShmem: 0 kB VmData: 10332 kB VmStk: 136 kB VmExe: 992 kB VmLib: 2104 kB VmPTE: 76 kB VmPMD: 12 kB VmSwap: 0 kB HugetlbPages: 0 kB # 4.4 Threads: 1 SigQ: 0/3067 SigPnd: 0000000000000000 ShdPnd: 0000000000000000 SigBlk: 0000000000010000 SigIgn: 0000000000384004 SigCgt: 000000004b813efb CapInh: 0000000000000000 CapPrm: 0000000000000000 CapEff: 0000000000000000 CapBnd: ffffffffffffffff CapAmb: 0000000000000000 NoNewPrivs: 0 Seccomp: 0 Cpus_allowed: 00000001 Cpus_allowed_list: 0 Mems_allowed: 1 Mems_allowed_list: 0 voluntary_ctxt_switches: 150 nonvoluntary_ctxt_switches: 545 The fields are as follows: * Name: Command run by this process. * Umask: Process umask, expressed in octal with a leading zero; see umask(2). (Since Linux 4.7.) * State: Current state of the process. One of "R (running)", "S (sleeping)", "D (disk sleep)", "T (stopped)", "T (tracing stop)", "Z (zombie)", or "X (dead)". * Tgid: Thread group ID (i.e., Process ID). * Ngid: NUMA group ID (0 if none; since Linux 3.13). * Pid: Thread ID (see gettid(2)). * PPid: PID of parent process. * TracerPid: PID of process tracing this process (0 if not being traced). * Uid, Gid: Real, effective, saved set, and filesystem UIDs (GIDs). * FDSize: Number of file descriptor slots currently allocated. * Groups: Supplementary group list. * NStgid : Thread group ID (i.e., PID) in each of the PID namespaces of which [pid] is a member. The leftmost entry shows the value with respect to the PID namespace of the reading process, followed by the value in successively nested inner namespaces. (Since Linux 4.1.) * NSpid: Thread ID in each of the PID namespaces of which [pid] is a member. The fields are ordered as for NStgid. (Since Linux 4.1.) * NSpgid: Process group ID in each of the PID namespaces of which [pid] is a member. The fields are ordered as for NSt‐ gid. (Since Linux 4.1.) * NSsid: descendant namespace session ID hierarchy Session ID in each of the PID namespaces of which [pid] is a member. The fields are ordered as for NStgid. (Since Linux 4.1.) * VmPeak: Peak virtual memory size. * VmSize: Virtual memory size. * VmLck: Locked memory size (see mlock(3)). * VmPin: Pinned memory size (since Linux 3.2). These are pages that can't be moved because something needs to directly access physical memory. * VmHWM: Peak resident set size ("high water mark"). * VmRSS: Resident set size. Note that the value here is the sum of RssAnon, RssFile, and RssShmem. * RssAnon: Size of resident anonymous memory. (since Linux 4.5). * RssFile: Size of resident file mappings. (since Linux 4.5). * RssShmem: Size of resident shared memory (includes System V shared memory, mappings from tmpfs(5), and shared anonymous mappings). (since Linux 4.5). * VmData, VmStk, VmExe: Size of data, stack, and text seg‐ ments. * VmLib: Shared library code size. * VmPTE: Page table entries size (since Linux 2.6.10). * VmPMD: Size of second-level page tables (since Linux 4.0). * VmSwap: Swapped-out virtual memory size by anonymous private pages; shmem swap usage is not included (since Linux 2.6.34). * HugetlbPages: Size of hugetlb memory portions. (since Linux 4.4). * Threads: Number of threads in process containing this thread. * SigQ: This field contains two slash-separated numbers that relate to queued signals for the real user ID of this process. The first of these is the number of currently queued signals for this real user ID, and the second is the resource limit on the number of queued signals for this process (see the description of RLIMIT_SIGPENDING in getrlimit(2)). * SigPnd, ShdPnd: Number of signals pending for thread and for process as a whole (see pthreads(7) and signal(7)). * SigBlk, SigIgn, SigCgt: Masks indicating signals being blocked, ignored, and caught (see signal(7)). * CapInh, CapPrm, CapEff: Masks of capabilities enabled in inheritable, permitted, and effective sets (see capabilities(7)). * CapBnd: Capability Bounding set (since Linux 2.6.26, see capabilities(7)). * CapAmb: Ambient capability set (since Linux 4.3, see capabilities(7)). * NoNewPrivs: Value of the no_new_privs bit (since Linux 4.10, see prctl(2)). * Seccomp: Seccomp mode of the process (since Linux 3.8, see seccomp(2)). 0 means SECCOMP_MODE_DISABLED; 1 means SEC‐ COMP_MODE_STRICT; 2 means SECCOMP_MODE_FILTER. This field is provided only if the kernel was built with the CON‐ FIG_SECCOMP kernel configuration option enabled. * Cpus_allowed: Mask of CPUs on which this process may run (since Linux 2.6.24, see cpuset(7)). * Cpus_allowed_list: Same as previous, but in "list format" (since Linux 2.6.26, see cpuset(7)). * Mems_allowed: Mask of memory nodes allowed to this process (since Linux 2.6.24, see cpuset(7)). * Mems_allowed_list: Same as previous, but in "list format" (since Linux 2.6.26, see cpuset(7)). * voluntary_ctxt_switches, nonvoluntary_ctxt_switches: Number of voluntary and involuntary context switches (since Linux 2.6.23).