Het proc bestandssysteem is een speciaal bestandssysteem en komt voor in de meeste op UNIX gebaseerde systemen. Het bevat zeer veel informatie in tekstformaat, waarvan het overgrote deel voor de doorsnee gebruiker niet erg gebruiksvriendelijk wordt weergegeven.
De bestanden in de /proc map worden niet bewaard op een fysiek apparaat, waardoor ze bij elke herstart opnieuw worden aangemaakt. Eigenlijk zijn het zelfs geen bestanden, maar pseudo-bestanden die enkel in het werkgeheugen (RAM) van de computer bestaan.
Een overzicht van de meest bruikbare /proc bestanden.
De map /proc bevat per opgestart proces een map met als naam het PID (Process IDentification getal). Laten we een paar van de in deze mappen voorkomende bestanden bekijken.
dany@linux-bxth:~> more /proc/1021/cmdline
/usr/sbin/cupsd
Of
dany@linux-bxth:~> cat -v /proc/1021/cmdline
/usr/sbin/cupsd^@-C^@/etc/cups/cupsd.conf^@
De tweede opdracht toont de speciale karakters die door sommige terminals niet correct worden weergegeven.
De tweede uitvoer moet je dus lezen als /usr/sbin/cupsd -C /etc/cups/cupsd.conf waarbij de speciale karakters spaties zijn.
Dit is een koppeling (symbolic link, verbinding) naar de werkmap van het proces.
ls /proc/6945/cwd/
dany@linux-bxth:~> more /proc/6945/status
Name: bash
State: S (sleeping)
Tgid: 6945
Pid: 6945
PPid: 6943
TracerPid: 0
Uid: 1000 1000 1000 1000
Gid: 100 100 100 100
FDSize: 256
Groups: 33 100
VmPeak: 14904 kB
VmSize: 14904 kB
VmLck: 0 kB
VmHWM: 3792 kB
VmRSS: 3792 kB
VmData: 1928 kB
VmStk: 136 kB
VmExe: 616 kB
VmLib: 2248 kB
VmPTE: 48 kB
VmSwap: 0 kB
Threads: 1
SigQ: 0/79903
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000010000
SigIgn: 0000000000384004
SigCgt: 000000004b813efb
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: ffffffffffffffff
Cpus_allowed: ff
Cpus_allowed_list: 0-7
Mems_allowed: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,000
00000,00000001
Mems_allowed_list: 0
voluntary_ctxt_switches: 1346
nonvoluntary_ctxt_switches: 8
dany@linux-bxth:~> more /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz root=/dev/sda7 resume=/dev/sda6 splash=silent quiet showopt
dany@linux-bxth:~> more /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 42
model name : Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz
stepping : 7
cpu MHz : 3401.000
cache size : 8192 KB
physical id : 0
siblings : 8
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall
nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est t
m2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 x2apic popcnt aes xsave avx lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid
bogomips : 6784.74
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
...
dany@linux-bxth:~> more /proc/filesystems
nodev sysfs
nodev rootfs
nodev bdev
nodev proc
nodev cgroup
nodev cpuset
nodev tmpfs
nodev devtmpfs
nodev debugfs
nodev securityfs
nodev sockfs
nodev usbfs
nodev pipefs
nodev anon_inodefs
nodev devpts
ext3
ext2
ext4
nodev ramfs
nodev hugetlbfs
iso9660
nodev pstore
nodev mqueue
nodev autofs
nodev fuse
fuseblk
nodev fusectl
Bevat informatie over de belasting van het systeem. De eerste drie velden tonen hoeveel processen de afgelopen minuut, drie minuten en 15 minuten er gemiddeld actief waren.
Het volgende veld bestaat uit twee door een slash gescheiden getallen. Het eerste getal bevat het aantal op dit ogenblik actieve processen/threats. Dit getal kan nooit hoger zijn dan het aantal kernen in uw processor. Het tweede getal (na de slash) het huidig aantal gestarte processen.
Het vijfde en laatste getal is de PID van het allerlaatst gestarte proces. Dit is meestal het PID van het proces waarmee je deze informatie opvraagt (in het voorbeeld de opdracht more).dany@linux-bxth:~> more /proc/loadavg
1.50 1.38 1.20 2/471 13414
dany@linux-bxth:~> more /proc/meminfo
MemTotal: 10242256 kB
MemFree: 2246596 kB
Buffers: 4421872 kB
Cached: 1917964 kB
SwapCached: 84 kB
Active: 1767904 kB
Inactive: 5462016 kB
Active(anon): 783444 kB
Inactive(anon): 109148 kB
Active(file): 984460 kB
Inactive(file): 5352868 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 10485756 kB
SwapFree: 10485644 kB
Dirty: 124 kB
Writeback: 0 kB
AnonPages: 890052 kB
Mapped: 175748 kB
Shmem: 2484 kB
Slab: 553788 kB
SReclaimable: 409968 kB
SUnreclaim: 143820 kB
KernelStack: 3832 kB
PageTables: 35200 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 15606884 kB
Committed_AS: 3840596 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 348888 kB
VmallocChunk: 34359385780 kB
HardwareCorrupted: 0 kB
AnonHugePages: 286720 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 677888 kB
DirectMap2M: 9791488 kB
dany@linux-bxth:~> more /proc/net/arp
IP address HW type Flags HW address Mask Device
192.168.1.1 0x1 0x2 00:26:91:a5:12:34 * eth0
dany@linux-bxth:~> more /proc/net/dev
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
lo: 21795 155 0 0 0 0 0 0 21795 155 0 0 0 0 0 0
eth0: 412915029 937039 0 0 0 0 0 0 5778906386 4007381 0 0 0 0 0 0
wlan0: 1075926 14205 0 0 0 0 0 0 76428101 50386 0 0 0 0 0 0
vmnet1: 0 0 0 0 0 0 0 0 0 37 0 0 0 0 0 0
vmnet8: 0 0 0 0 0 0 0 0 0 37 0 0 0 0 0 0
dany@linux-bxth:~> more /proc/net/route
Iface Destination Gateway Flags RefCnt Use Metric Mask MTU Window IRTT
eth0 00000000 0101A8C0 0003 0 0 0 00000000 0 0 0
lo 0000007F 00000000 0001 0 0 0 000000FF 0 0 0
eth0 0000FEA9 00000000 0001 0 0 0 0000FFFF 0 0 0
vmnet1 009C10AC 00000000 0001 0 0 0 00FFFFFF 0 0 0
eth0 0001A8C0 00000000 0001 0 0 0 00FFFFFF 0 0 0
vmnet8 0051A8C0 00000000 0001 0 0 0 00FFFFFF 0 0 0
dany@linux-bxth:~> more /proc/net/wireless
Inter-| sta-| Quality | Discarded packets | Missed | WE
face | tus | link level noise | nwid crypt frag retry misc | beacon | 22
dany@linux-bxth:~> more /proc/swaps
Filename Type Size Used Priority
/dev/sda6 partition 10485756 112 0
dany@linux-bxth:~> more /proc/sys/kernel/hostname
linux-bxth
Met de opdrachtecho ‘nieuwenaam’ > /proc/sys/kernel/hostname
dany@linux-bxth:~> more /proc/sys/kernel/threads-max
159806
dany@linux-bxth:~> more /proc/sys/vm/swappiness
60
dany@linux-bxth:~> more /proc/uptime
17787.26 124795.12
Om het in rust percentage van het systeem te berekenen, kun je de volgende opdracht gebruiken:
dany@linux-bxth:~> echo `cut -d' ' -f2 /proc/uptime` / `cut -d' ' -f1 /proc/uptime` | bc -l
7.02635592629648798034
dany@linux-bxth:~> more /proc/vmstat
nr_free_pages 548927
nr_inactive_anon 27184
nr_active_anon 206658
nr_inactive_file 1337217
nr_active_file 248875
nr_unevictable 0
nr_mlock 0
nr_anon_pages 152816
nr_mapped 45315
nr_file_pages 1586738
nr_dirty 110
nr_writeback 0
nr_slab_reclaimable 102582
nr_slab_unreclaimable 36217
nr_page_table_pages 8954
nr_kernel_stack 492
nr_unstable 0
nr_bounce 0
nr_vmscan_write 43
nr_writeback_temp 0
nr_isolated_anon 0
nr_isolated_file 0
nr_shmem 625
nr_dirtied 586634
nr_written 532276
numa_hit 26951870
numa_miss 0
numa_foreign 0
numa_interleave 16516
numa_local 26951870
numa_other 0
...
dany@linux-bxth:~> more /proc/sys/net/ipv4/conf/default/forwarding
0
Deze waarde op 1 zetten laat tcp forwarding toe.
Denk aan het zonder wachtwoord delen van een internet verbinding.