Lines Matching +full:proc +full:- +full:id
1 .. SPDX-License-Identifier: GPL-2.0
4 The /proc Filesystem
8 /proc/sys Terrehon Bowden <terrehon@pacbell.net>, October 7 1999
11 move /proc/sys Shen Feng <shen@cn.fujitsu.com> April 1 2009
24 1.1 Process-Specific Subdirectories
26 1.3 IDE devices in /proc/ide
27 1.4 Networking info in /proc/net
29 1.6 Parallel port info in /proc/parport
30 1.7 TTY info in /proc/tty
31 1.8 Miscellaneous kernel statistics in /proc/stat
36 3 Per-Process Parameters
37 3.1 /proc/<pid>/oom_adj & /proc/<pid>/oom_score_adj - Adjust the oom-killer
39 3.2 /proc/<pid>/oom_score - Display current oom-killer score
40 3.3 /proc/<pid>/io - Display the IO accounting fields
41 3.4 /proc/<pid>/coredump_filter - Core dump filtering settings
42 3.5 /proc/<pid>/mountinfo - Information about mounts
43 3.6 /proc/<pid>/comm & /proc/<pid>/task/<tid>/comm
44 3.7 /proc/<pid>/task/<tid>/children - Information about task children
45 3.8 /proc/<pid>/fdinfo/<fd> - Information about opened file
46 3.9 /proc/<pid>/map_files - Information about memory mapped files
47 3.10 /proc/<pid>/timerslack_ns - Task timerslack value
48 3.11 /proc/<pid>/patch_state - Livepatch patch operation state
49 3.12 /proc/<pid>/arch_status - Task architecture specific information
60 ------------------------
64 /proc file system and we've used many freely available sources to write these
68 we know, it is the first 'all-in-one' document about the /proc file system. It
71 It also only covers IPv4 networking, not IPv6 nor other protocols - sorry. But
87 http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/proc.html
90 mailing list at linux-kernel@vger.kernel.org and/or try to reach me at
94 ---------------
104 ---------------
105 * Investigating the properties of the pseudo file system /proc and its
107 * Examining /proc's structure
111 ------------------------------------------------------------------------------
113 The proc file system acts as an interface to internal data structures in the
117 First, we'll take a look at the read-only parts of /proc. In Chapter 2, we
118 show you how you can use /proc/sys to change settings.
120 1.1 Process-Specific Subdirectories
121 -----------------------------------
123 The directory /proc contains (among other things) one subdirectory for each
124 process running on the system, which is named after the process ID (PID).
127 subdirectory has the entries listed in Table 1-1.
129 Note that an open file descriptor to /proc/<pid> or to any of its
132 open /proc/<pid> file descriptors corresponding to dead processes
134 also assigned the process ID <pid>. Instead, operations on these FDs
137 .. table:: Table 1-1: Process specific entries in /proc
156 symbol the task is blocked in - or "0" if not blocked.
168 read the file /proc/PID/status::
170 >cat /proc/self/status
217 the ps command. In fact, ps uses the proc file system to obtain its
219 file /proc/PID/status. It fields are described in table 1-2.
222 memory usage. Its seven fields are explained in Table 1-3. The stat file
224 explained in Table 1-4.
230 snapshot of a moment, you can see /proc/<pid>/smaps file and scan page table.
233 .. table:: Table 1-2: Contents of the status files (as of 4.19)
243 Tgid thread group ID
244 Ngid NUMA group ID (0 if none)
245 Pid process id
246 PPid process id of the parent process
252 NStgid descendant namespace thread group ID hierarchy
253 NSpid descendant namespace process ID hierarchy
254 NSpgid descendant namespace process group ID hierarchy
255 NSsid descendant namespace session ID hierarchy
304 .. table:: Table 1-3: Contents of the statm files (as of 2.6.8-rc3)
322 .. table:: Table 1-4: Contents of the stat files (as of 2.6.30-rc7)
327 pid process id
331 ppid process id of the parent process
333 sid session id
363 use /proc/PID/wchan instead)
384 The /proc/PID/maps file contains the currently mapped memory regions and
391 08048000-08049000 r-xp 00000000 03:00 8312 /opt/test
392 08049000-0804a000 rw-p 00001000 03:00 8312 /opt/test
393 0804a000-0806b000 rw-p 00000000 00:00 0 [heap]
394 a7cb1000-a7cb2000 ---p 00000000 00:00 0
395 a7cb2000-a7eb2000 rw-p 00000000 00:00 0
396 a7eb2000-a7eb3000 ---p 00000000 00:00 0
397 a7eb3000-a7ed5000 rw-p 00000000 00:00 0
398 a7ed5000-a8008000 r-xp 00000000 03:00 4222 /lib/libc.so.6
399 a8008000-a800a000 r--p 00133000 03:00 4222 /lib/libc.so.6
400 a800a000-a800b000 rw-p 00135000 03:00 4222 /lib/libc.so.6
401 a800b000-a800e000 rw-p 00000000 00:00 0
402 a800e000-a8022000 r-xp 00000000 03:00 14462 /lib/libpthread.so.0
403 a8022000-a8023000 r--p 00013000 03:00 14462 /lib/libpthread.so.0
404 a8023000-a8024000 rw-p 00014000 03:00 14462 /lib/libpthread.so.0
405 a8024000-a8027000 rw-p 00000000 00:00 0
406 a8027000-a8043000 r-xp 00000000 03:00 8317 /lib/ld-linux.so.2
407 a8043000-a8044000 r--p 0001b000 03:00 8317 /lib/ld-linux.so.2
408 a8044000-a8045000 rw-p 0001c000 03:00 8317 /lib/ld-linux.so.2
409 aff35000-aff4a000 rw-p 00000000 00:00 0 [stack]
410 ffffe000-fffff000 r-xp 00000000 00:00 0 [vdso]
436 The /proc/PID/smaps is an extension based on maps, showing the memory
440 08048000-080bc000 r-xp 00000000 03:02 13130 /bin/bash
467 mapping in /proc/PID/maps. Following lines show the size of the mapping
506 "Swap" shows how much would-be-anonymous memory is also used, but out on swap.
509 replaced by copy-on-write) part of the underlying shmem object out on swap.
514 pages - 1 if true, 0 otherwise. It just shows the current status.
553 be vanished or the reverse -- new added. Interpretation of their meaning
560 Note: reading /proc/PID/maps or /proc/PID/smaps is inherently racy (consistent
572 The /proc/PID/smaps_rollup file includes the same fields as /proc/PID/smaps,
576 - Pss_Anon
577 - Pss_File
578 - Pss_Shmem
586 The /proc/PID/clear_refs is used to reset the PG_Referenced and ACCESSED/YOUNG
588 soft-dirty bit on pte (see Documentation/admin-guide/mm/soft-dirty.rst
592 > echo 1 > /proc/PID/clear_refs
596 > echo 2 > /proc/PID/clear_refs
600 > echo 3 > /proc/PID/clear_refs
602 To clear the soft-dirty bit::
604 > echo 4 > /proc/PID/clear_refs
609 > echo 5 > /proc/PID/clear_refs
611 Any other value written to /proc/PID/clear_refs will have no effect.
613 The /proc/pid/pagemap gives the PFN, which can be used to find the pageflags
614 using /proc/kpageflags and number of times a page is mapped using
615 /proc/kpagecount. For detailed explanation, see
616 Documentation/admin-guide/mm/pagemap.rst.
618 The /proc/pid/numa_maps is an extension based on maps, showing the memory
627 3206000000 default file=/lib64/ld-2.12.so mapped=26 mapmax=6 N0=24 N3=2 kernelpagesize_kB=4
628 320621f000 default file=/lib64/ld-2.12.so anon=1 dirty=1 N3=1 kernelpagesize_kB=4
629 3206220000 default file=/lib64/ld-2.12.so anon=1 dirty=1 N3=1 kernelpagesize_kB=4
631 …3206800000 default file=/lib64/libc-2.12.so mapped=59 mapmax=21 active=55 N0=41 N3=18 kernelpagesi…
632 320698b000 default file=/lib64/libc-2.12.so
633 3206b8a000 default file=/lib64/libc-2.12.so anon=2 dirty=2 N3=2 kernelpagesize_kB=4
634 3206b8e000 default file=/lib64/libc-2.12.so anon=1 dirty=1 N3=1 kernelpagesize_kB=4
646 "policy" reports the NUMA memory policy set for the mapping (see Documentation/admin-guide/mm/numa_…
653 ---------------
657 /proc and are listed in Table 1-5. Not all of these will be present in your
661 .. table:: Table 1-5: Kernel info in /proc
696 pci Deprecated info of PCI bus (new way -> /proc/bus/pci/,
714 they are used for by looking in the file /proc/interrupts::
716 > cat /proc/interrupts
718 0: 8728810 XT-PIC timer
719 1: 895 XT-PIC keyboard
720 2: 0 XT-PIC cascade
721 3: 531695 XT-PIC aha152x
722 4: 2014133 XT-PIC serial
723 5: 44401 XT-PIC pcnet_cs
724 8: 2 XT-PIC rtc
725 11: 8 XT-PIC i82365
726 12: 182918 XT-PIC PS/2 Mouse
727 13: 1 XT-PIC fpu
728 14: 1232265 XT-PIC ide0
729 15: 7 XT-PIC ide1
735 > cat /proc/interrupts
738 0: 1243498 1214548 IO-APIC-edge timer
739 1: 8949 8958 IO-APIC-edge keyboard
740 2: 0 0 XT-PIC cascade
741 5: 11286 10161 IO-APIC-edge soundblaster
742 8: 1 0 IO-APIC-edge rtc
743 9: 27422 27407 IO-APIC-edge 3c503
744 12: 113645 113873 IO-APIC-edge PS/2 Mouse
745 13: 0 0 XT-PIC fpu
746 14: 22491 24012 IO-APIC-edge ide0
747 15: 2183 2415 IO-APIC-edge ide1
748 17: 30564 30414 IO-APIC-level eth0
749 18: 177 164 IO-APIC-level bttv
759 ERR is incremented in the case of errors in the IO-APIC bus (the bus that
761 the IO-APIC automatically retry the transmission, so it should not be a big
762 problem, but you should read the SMP-FAQ.
764 In 2.6.2* /proc/interrupts was expanded again. This time the goal was for
765 /proc/interrupts to display every IRQ vector in use by the system, not
796 Of some interest is the introduction of the /proc/irq directory to 2.4.
804 > ls /proc/irq/
807 > ls /proc/irq/0/
813 > echo 1 > /proc/irq/10/smp_affinity
820 > cat /proc/irq/0/smp_affinity
826 > cat /proc/irq/0/smp_affinity_list
827 1024-1031
829 The default_smp_affinity mask applies to all non-active IRQs, which are the
831 /proc/irq/[0-9]* directory.
840 The way IRQs are routed is handled by the IO-APIC, and it's Round Robin
843 best choice for almost everyone. [Note this applies only to those IO-APIC's
846 There are three more important subdirectories in /proc: net, scsi, and sys.
859 > cat /proc/buddyinfo
878 > cat /proc/pagetypeinfo
901 X86-64. By keeping pages grouped based on their ability to move, the kernel
902 can reclaim pages within a page block to satisfy a high-order allocation.
906 by migrate-type and finishes with details on how many page blocks of each
927 > cat /proc/meminfo
985 in-memory cache for files read from the disk (the
1019 Non-file backed pages mapped into userspace page tables
1024 Non-file backed huge pages mapped into userspace page tables
1039 in-kernel data structures cache
1063 CommitLimit = ([total RAM pages] - [total huge TLB pages]) *
1071 in vm/overcommit-accounting.
1118 > cat /proc/vmallocinfo
1119 0xffffc20000000000-0xffffc20000201000 2101248 alloc_large_system_hash+0x204 ...
1121 0xffffc20000201000-0xffffc20000302000 1052672 alloc_large_system_hash+0x204 ...
1123 0xffffc20000302000-0xffffc20000304000 8192 acpi_tb_verify_table+0x21/0x4f...
1125 0xffffc20000304000-0xffffc20000307000 12288 acpi_tb_verify_table+0x21/0x4f...
1127 0xffffc2000031d000-0xffffc2000031f000 8192 init_vdso_vars+0x112/0x210
1128 0xffffc2000031f000-0xffffc2000032b000 49152 cramfs_uncompress_init+0x2e ...
1130 0xffffc2000033a000-0xffffc2000033d000 12288 sys_swapon+0x640/0xac0 ...
1132 0xffffc20000347000-0xffffc2000034c000 20480 xt_alloc_table_info+0xfe ...
1134 0xffffffffa0000000-0xffffffffa000f000 61440 sys_init_module+0xc27/0x1d00 ...
1136 0xffffffffa000f000-0xffffffffa0014000 20480 sys_init_module+0xc27/0x1d00 ...
1138 0xffffffffa0014000-0xffffffffa0017000 12288 sys_init_module+0xc27/0x1d00 ...
1140 0xffffffffa0017000-0xffffffffa0022000 45056 sys_init_module+0xc27/0x1d00 ...
1151 > cat /proc/softirqs
1164 1.3 IDE devices in /proc/ide
1165 ----------------------------
1167 The subdirectory /proc/ide contains information about all IDE devices of which
1175 > cat /proc/ide/drivers
1176 ide-cdrom version 4.53
1177 ide-disk version 1.08
1181 directories contains the files shown in table 1-6.
1184 .. table:: Table 1-6: IDE controller info in /proc/ide/ide?
1196 controllers directory. The files listed in table 1-7 are contained in these
1200 .. table:: Table 1-7: IDE device information
1220 # cat /proc/ide/ide0/hda/settings
1222 ---- ----- --- --- ----
1235 pio_mode write-only 0 255 w
1241 1.4 Networking info in /proc/net
1242 --------------------------------
1244 The subdirectory /proc/net follows the usual pattern. Table 1-8 shows the
1246 support this. Table 1-9 lists the files and their meaning.
1249 .. table:: Table 1-8: IPv6 info in /proc/net
1265 .. table:: Table 1-9: Network info in /proc/net
1301 > cat /proc/net/dev
1302 Inter-|Receive |[...
1315 example, the bond0 device will have a directory called /proc/net/bond0/.
1321 -------------
1324 named after the driver for this adapter in /proc/scsi. You'll also see a list
1325 of all recognized SCSI devices in /proc/scsi::
1327 >cat /proc/scsi/scsi
1329 Host: scsi0 Channel: 00 Id: 00 Lun: 00
1331 Type: Direct-Access ANSI SCSI revision: 03
1332 Host: scsi0 Channel: 00 Id: 06 Lun: 00
1333 Vendor: PIONEER Model: CD-ROM DR-U06S Rev: 1.04
1334 Type: CD-ROM ANSI SCSI revision: 02
1341 AHA-2940 SCSI adapter::
1343 > cat /proc/scsi/aic7xxx/0
1351 SCSI Adapter: Adaptec AHA-294X Ultra SCSI host adapter
1383 1.6 Parallel port info in /proc/parport
1384 ---------------------------------------
1386 The directory /proc/parport contains information about the parallel ports of
1390 These directories contain the four files shown in Table 1-10.
1393 .. table:: Table 1-10: Files in /proc/parport
1398 autoprobe Any IEEE-1284 device ID information that has been acquired.
1408 1.7 TTY info in /proc/tty
1409 -------------------------
1412 directory /proc/tty. You'll find entries for drivers and line disciplines in
1413 this directory, as shown in Table 1-11.
1416 .. table:: Table 1-11: Files in /proc/tty
1427 /proc/tty/drivers::
1429 > cat /proc/tty/drivers
1430 pty_slave /dev/pts 136 0-255 pty:slave
1431 pty_master /dev/ptm 128 0-255 pty:master
1432 pty_slave /dev/ttyp 3 0-255 pty:slave
1433 pty_master /dev/pty 2 0-255 pty:master
1434 serial /dev/cua 5 64-67 serial:callout
1435 serial /dev/ttyS 4 64-67 serial
1440 unknown /dev/tty 4 1-63 console
1443 1.8 Miscellaneous kernel statistics in /proc/stat
1444 -------------------------------------------------
1447 /proc/stat file. All of the numbers reported in this file are aggregates
1450 > cat /proc/stat
1467 - user: normal processes executing in user mode
1468 - nice: niced processes executing in user mode
1469 - system: processes executing in kernel mode
1470 - idle: twiddling thumbs
1471 - iowait: In a word, iowait stands for waiting for I/O to complete. But there
1477 2. In a multi-core CPU, the task waiting for I/O to complete is not running
1479 3. The value of iowait field in /proc/stat will decrease in certain
1482 So, the iowait is not reliable by reading from /proc/stat.
1483 - irq: servicing interrupts
1484 - softirq: servicing softirqs
1485 - steal: involuntary wait
1486 - guest: running a normal guest
1487 - guest_nice: running a niced guest
1517 -------------------------------
1520 /proc/fs/ext4. Each mounted filesystem will have a directory in
1521 /proc/fs/ext4 based on its device name (i.e., /proc/fs/ext4/hdc or
1522 /proc/fs/ext4/dm-0). The files in each per-device directory are shown
1523 in Table 1-12, below.
1525 .. table:: Table 1-12: Files in /proc/fs/ext4/<devname>
1532 1.10 /proc/consoles
1533 -------------------
1537 /dev/console, you may simply look into the file /proc/consoles::
1539 > cat /proc/consoles
1540 tty0 -WU (ECp) 4:7
1541 ttyS0 -W- (Ep) 4:64
1545 +--------------------+-------------------------------------------------------+
1551 +--------------------+-------------------------------------------------------+
1558 +--------------------+-------------------------------------------------------+
1561 +--------------------+-------------------------------------------------------+
1564 -------
1566 The /proc file system serves information about the running system. It not only
1570 The directory structure of /proc reflects the types of information and makes
1577 ---------------
1579 * Modifying kernel parameters by writing into files found in /proc/sys
1581 * Review of the /proc/sys file tree
1583 ------------------------------------------------------------------------------
1585 A very interesting part of /proc is the directory /proc/sys. This is not only
1597 The files in /proc/sys can be used to fine tune and monitor miscellaneous and
1601 very careful when writing to any of these files. The entries in /proc may
1607 Please see: Documentation/admin-guide/sysctl/ directory for descriptions of these
1611 -------
1615 /proc/sys tree can not only be read, but also modified. You can use the echo
1620 Chapter 3: Per-process Parameters
1623 3.1 /proc/<pid>/oom_adj & /proc/<pid>/oom_score_adj- Adjust the oom-killer score
1624 --------------------------------------------------------------------------------
1645 The value of /proc/<pid>/oom_score_adj is added to the badness score before it
1646 is used to determine which task to kill. Acceptable values range from -1000
1649 task or completely disabling it. The lowest possible value, -1000, is
1654 consider for each task. Setting a /proc/<pid>/oom_score_adj value of +500, for
1657 50% more memory. A value of -500, on the other hand, would be roughly
1661 For backwards compatibility with previous kernels, /proc/<pid>/oom_adj may also
1662 be used to tune the badness score. Its acceptable values range from -16
1663 (OOM_ADJUST_MIN) to +15 (OOM_ADJUST_MAX) and a special value of -17
1665 scaled linearly with /proc/<pid>/oom_score_adj.
1667 The value of /proc/<pid>/oom_score_adj may be reduced no lower than the last
1672 3.2 /proc/<pid>/oom_score - Display current oom-killer score
1673 -------------------------------------------------------------
1675 This file can be used to check the current score used by the oom-killer for
1676 any given <pid>. Use it together with /proc/<pid>/oom_score_adj to tune which
1677 process should be killed in an out-of-memory situation.
1683 3.3 /proc/<pid>/io - Display the IO accounting fields
1684 -------------------------------------------------------
1696 test:/tmp # cat /proc/3828/io
1750 accurate for block-backed filesystems. <please add status regarding NFS and
1759 the storage layer. This is done at page-dirtying time.
1778 At its current implementation state, this is a bit racy on 32-bit machines:
1779 if process A reads process B's /proc/pid/io while process B is updating one
1780 of those 64-bit counters, process A could see an intermediate result.
1786 3.4 /proc/<pid>/coredump_filter - Core dump filtering settings
1787 ---------------------------------------------------------------
1791 Conversely, sometimes we want to save file-backed memory segments into a core
1794 /proc/<pid>/coredump_filter allows you to customize which memory segments
1801 - (bit 0) anonymous private memory
1802 - (bit 1) anonymous shared memory
1803 - (bit 2) file-backed private memory
1804 - (bit 3) file-backed shared memory
1805 - (bit 4) ELF header pages in file-backed private memory areas (it is
1807 - (bit 5) hugetlb private memory
1808 - (bit 6) hugetlb shared memory
1809 - (bit 7) DAX private memory
1810 - (bit 8) DAX shared memory
1815 Note that bits 0-4 don't affect hugetlb or DAX memory. hugetlb memory is
1816 only affected by bit 5-6, and DAX is only affected by bits 7-8.
1822 write 0x31 to the process's proc file::
1824 $ echo 0x31 > /proc/1234/coredump_filter
1830 $ echo 0x7 > /proc/self/coredump_filter
1833 3.5 /proc/<pid>/mountinfo - Information about mounts
1834 --------------------------------------------------------
1838 36 35 98:0 /mnt1 /mnt2 rw,noatime master:1 - ext3 /dev/root rw,errors=continue
1841 (1) mount ID: unique identifier of the mount (may be reused after umount)
1842 (2) parent ID: ID of parent (or of self for the top of the mount tree)
1873 3.6 /proc/<pid>/comm & /proc/<pid>/task/<tid>/comm
1874 --------------------------------------------------------
1882 3.7 /proc/<pid>/task/<tid>/children - Information about task children
1883 -------------------------------------------------------------------------
1888 Note the "first level" here -- if a child has its own children they will
1889 not be listed here; one needs to read /proc/<children-pid>/task/<tid>/children
1899 3.8 /proc/<pid>/fdinfo/<fd> - Information about opened file
1900 ---------------------------------------------------------------
1902 files have at least three fields -- 'pos', 'flags' and 'mnt_id'. The 'pos'
1905 created with [see open(2) for details] and 'mnt_id' represents mount ID of
1906 the file system containing the opened file [see 3.5 /proc/<pid>/mountinfo
1930 eventfd-count: 5a
1932 where 'eventfd-count' is hex value of a counter.
1971 …inotify wd:3 ino:9e7e sdev:800013 mask:800afce ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_han…
1980 fields 'fhandle-bytes', 'fhandle-type' and 'f_handle', all in hex
1993 fanotify flags:10 event-flags:0
1995 …fanotify ino:4f969 sdev:800013 mflags:0 mask:3b ignored_mask:40000000 fhandle-bytes:8 fhandle-type…
1997 where fanotify 'flags' and 'event-flags' are values used in fanotify_init
2031 3.9 /proc/<pid>/map_files - Information about memory mapped files
2032 ---------------------------------------------------------------------
2036 | lr-------- 1 root root 64 Jan 27 11:24 333c600000-333c620000 -> /usr/lib64/ld-2.18.so
2037 | lr-------- 1 root root 64 Jan 27 11:24 333c81f000-333c820000 -> /usr/lib64/ld-2.18.so
2038 | lr-------- 1 root root 64 Jan 27 11:24 333c820000-333c821000 -> /usr/lib64/ld-2.18.so
2040 | lr-------- 1 root root 64 Jan 27 11:24 35d0421000-35d0422000 -> /usr/lib64/libselinux.so.1
2041 | lr-------- 1 root root 64 Jan 27 11:24 400000-41a000 -> /usr/bin/ls
2044 vm_area_struct::vm_start-vm_area_struct::vm_end.
2047 files in a fast way instead of parsing /proc/<pid>/maps or
2048 /proc/<pid>/smaps, both of which contain many more records. At the same
2053 3.10 /proc/<pid>/timerslack_ns - Task timerslack value
2054 ---------------------------------------------------------
2064 Valid values are from 0 - ULLONG_MAX
2069 3.11 /proc/<pid>/patch_state - Livepatch patch operation state
2070 -----------------------------------------------------------------
2074 A value of '-1' indicates that no patch is in transition.
2086 3.12 /proc/<pid>/arch_status - task architecture specific status
2087 -------------------------------------------------------------------
2096 $ cat /proc/6753/arch_status
2127 A special value of '-1' indicates that no AVX512 usage was recorded, thus
2135 ---------------------
2140 hidepid= Set /proc/<pid>/ access mode.
2145 hidepid=off or hidepid=0 means classic mode - everybody may access all
2146 /proc/<pid>/ directories (default).
2148 hidepid=noaccess or hidepid=1 means users may not access any /proc/<pid>/
2152 behaviour). As an additional bonus, as /proc/<pid>/cmdline is unaccessible for
2156 hidepid=invisible or hidepid=2 means hidepid=1 plus all /proc/<pid>/ will be
2159 by "kill -0 $PID"), but it hides process' uid and gid, which may be learned by
2160 stat()'ing /proc/<pid>/ otherwise. It greatly complicates an intruder's task of
2166 /proc/<pid>/ directories that the caller can ptrace.
2185 # grep ^proc /proc/mounts
2186 proc /proc proc rw,relatime,hidepid=2 0 0
2188 # strace -e mount mount -o hidepid=1 -t proc proc /tmp/proc
2189 mount("proc", "/tmp/proc", "proc", 0, "hidepid=1") = 0
2192 # grep ^proc /proc/mounts
2193 proc /proc proc rw,relatime,hidepid=2 0 0
2194 proc /tmp/proc proc rw,relatime,hidepid=2 0 0
2199 # mount -o remount,hidepid=1 -t proc proc /tmp/proc
2201 # grep ^proc /proc/mounts
2202 proc /proc proc rw,relatime,hidepid=1 0 0
2203 proc /tmp/proc proc rw,relatime,hidepid=1 0 0
2212 # mount -o hidepid=invisible -t proc proc /proc
2213 # mount -o hidepid=noaccess -t proc proc /tmp/proc
2214 # grep ^proc /proc/mounts
2215 proc /proc proc rw,relatime,hidepid=invisible 0 0
2216 proc /tmp/proc proc rw,relatime,hidepid=noaccess 0 0