proc_pid_status(5)
๐ proc_pid_status โ section 5, File Formats Manual, bestie edition ๐
okay so you found proc_pid_status in the File Formats Manual, section 5, and honestly?? iconic choice. this is the file that spills every single thing the kernel knows about a process, in a layout that a human can actually read instead of the raw chaos of stat and statm. let's get into it ๐
๐ธ NAME ๐ธ
/proc/pid/status โ memory usage and status information ๐ซถ
โจ DESCRIPTION โจ
the vibe
/proc/pid/status gives you much of the information in /proc/pid/stat and /proc/pid/statm, but in a format that's way easier for humans to parse. the kernel said "let me make this readable for you bestie" and we love that for us. here's the example, no cap:
$ 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
CoreDumping: 0 # 4.15
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
Seccomp_filters: 0
Speculation_Store_Bypass: vulnerable
Cpus_allowed: 00000001
Cpus_allowed_list: 0
Mems_allowed: 1
Mems_allowed_list: 0
voluntary_ctxt_switches: 150
nonvoluntary_ctxt_switches: 545
๐ the fields, one by one ๐
okay now the main character section. every field, explained, in order, periodt. โจ
Nameโ the command that's being run by this process. heads up: strings longer thanTASK_COMM_LEN(16) characters (including the terminating null byte) get silently truncated. ๐ญ so keep your process names short, bestie.Umaskโ the process umask, in octal with a leading zero; peepumask(2). (Since Linux 4.7.)Stateโ the current state of the process. it's exactly one of these, no in-between:"R (running)""S (sleeping)""D (disk sleep)""T (stopped)""t (tracing stop)""Z (zombie)""X (dead)"
zombie state is giving undead energy fr ๐ง
Tgidโ thread group ID (that's just the Process ID).Ngidโ NUMA group ID (0if there isn't one; since Linux 3.13).Pidโ thread ID (go look atgettid(2)).PPidโ the PID of the parent process. ๐ parent energy.TracerPidโ PID of the process tracing this process (0if nothing's tracing it).Uid/Gidโ the real, effective, saved set, and filesystem UIDs (and GIDs). all four, in that order, four numbers each.FDSizeโ number of file descriptor slots currently allocated.Groupsโ the supplementary group list.NStgidโ thread group ID (i.e., PID) in each of the PID namespaces that pid is a member of. the leftmost entry shows the value with respect to the PID namespace of the process that mounted this procfs (or the root namespace if the kernel mounted it), and then you get the value in each successively nested inner namespace after that. (Since Linux 4.1.)NSpidโ thread ID in each of the PID namespaces that pid is a member of. fields are ordered the same way asNStgid. (Since Linux 4.1.)NSpgidโ process group ID in each of the PID namespaces that pid is a member of. fields ordered likeNStgid. (Since Linux 4.1.)NSsidโ descendant namespace session ID hierarchy โ session ID in each of the PID namespaces that pid is a member of. fields ordered likeNStgid. (Since Linux 4.1.)VmPeakโ peak virtual memory size.VmSizeโ virtual memory size.VmLckโ locked memory size (seemlock(2)).VmPinโ pinned memory size (since Linux 3.2). these are pages that can't be moved, because something needs to directly access physical memory. locked in place fr ๐VmHWMโ peak resident set size (the "high water mark"). โ ๏ธ this value is inaccurate; see/proc/pid/statmabove.VmRSSโ resident set size. note that this value is the sum ofRssAnon,RssFile, andRssShmem. โ ๏ธ also inaccurate; see/proc/pid/statmabove.RssAnonโ size of resident anonymous memory. (since Linux 4.5). โ ๏ธ inaccurate; see/proc/pid/statmabove.RssFileโ size of resident file mappings. (since Linux 4.5). โ ๏ธ inaccurate; see/proc/pid/statmabove.RssShmemโ size of resident shared memory โ and yes, that includes System V shared memory, mappings fromtmpfs(5), and shared anonymous mappings. (since Linux 4.5).VmData/VmStk/VmExeโ size of data, stack, and text segments. โ ๏ธ this value is inaccurate; see/proc/pid/statmabove.VmLibโ shared library code size.VmPTEโ page table entries size (since Linux 2.6.10).VmPMDโ size of second-level page tables (added in Linux 4.0; removed in Linux 4.15). ๐ gone but not forgotten.VmSwapโ swapped-out virtual memory size by anonymous private pages; shmem swap usage is not included (since Linux 2.6.34). โ ๏ธ this value is inaccurate; see/proc/pid/statmabove.HugetlbPagesโ size of hugetlb memory portions (since Linux 4.4).CoreDumpingโ contains the value1if the process is currently dumping core, and0if it's not (since Linux 4.15). a monitoring process can use this to avoid killing a process that's currently dumping core โ which could result in a corrupted core dump file. so like, don't do that ๐ซฃThreadsโ number of threads in the process containing this thread.SigQโ two slash-separated numbers about queued signals for the real user ID of this process. the first 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 ofRLIMIT_SIGPENDINGingetrlimit(2)).SigPnd/ShdPndโ mask (in hexadecimal) of signals pending for the thread, and for the process as a whole (seepthreads(7)andsignal(7)).SigBlk/SigIgn/SigCgtโ masks (in hexadecimal) indicating signals being blocked, ignored, and caught (seesignal(7)).CapInh/CapPrm/CapEffโ masks (in hexadecimal) of capabilities enabled in the inheritable, permitted, and effective sets (seecapabilities(7)).CapBndโ capability bounding set, expressed in hexadecimal (since Linux 2.6.26, seecapabilities(7)).CapAmbโ ambient capability set, expressed in hexadecimal (since Linux 4.3, seecapabilities(7)).NoNewPrivsโ value of theno_new_privsbit (since Linux 4.10, seeprctl(2)).Seccompโ seccomp mode of the process (since Linux 3.8, seeseccomp(2)).0meansSECCOMP_MODE_DISABLED;1meansSECCOMP_MODE_STRICT;2meansSECCOMP_MODE_FILTER. this field is provided only if the kernel was built with theCONFIG_SECCOMPkernel configuration option enabled. ๐Seccomp_filtersโ number of seccomp filters attached to the process (since Linux 5.9, seeseccomp(2)).Speculation_Store_Bypassโ speculation flaw mitigation state (since Linux 4.17, seeprctl(2)).Cpus_allowedโ hexadecimal mask of CPUs on which this process may run (since Linux 2.6.24, seecpuset(7)).Cpus_allowed_listโ same as the previous one, but in "list format" (since Linux 2.6.26, seecpuset(7)).Mems_allowedโ mask of memory nodes allowed to this process (since Linux 2.6.24, seecpuset(7)).Mems_allowed_listโ same as the previous one, but in "list format" (since Linux 2.6.26, seecpuset(7)).voluntary_ctxt_switches/nonvoluntary_ctxt_switchesโ number of voluntary and involuntary context switches (since Linux 2.6.23).
๐ SEE ALSO ๐
proc(5)โ the mothership. go read it, iykyk ๐ฆ
and that's the whole page, bestie, you ate that ๐ this little gem lives in Linux man-pages 6.20, dated 2026-02-08 โ go forth and cat your own /proc/$$/status, you're the main character of your own PID ๐
๐
๐ฆ where this page comes from
- arch rolling: man-pages 6.20-1 ยท BSD-2-Clause AND BSD-3-Clause AND BSD-4.3TAHOE AND BSD-4-Clause-UC AND GPL-1.0-or-later AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-or-later AND LGPL-3.0-linking-exception AND LGPL-3.0-or-later AND LicenseRef-Public-Domain AND LicenseRef-UltraPermissive AND Linux-man-pages-1-para AND Linux-man-pages-copyleft AND Linux-man-pages-copyleft-2-para AND Linux-man-pages-copyleft-var AND MIT AND Spencer-94
- nixpkgs unstable: man-pages 6.20
- ๐ the page's license: GPL-3.0-or-later
- Copyright 1994-1995, Daniel Quinlan <Daniel.Quinlan@linux.org>
- Copyright 2002-2017, Michael Kerrisk <mtk.manpages@gmail.com>
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms