[LINUX] Lesen Sie den gesamten Inhalt von proc / [pid] ~ Von map_files bis numa_maps ~

Überblick

Ich würde mich freuen, wenn Sie sich die Details hier ansehen könnten.

Lesen Sie den gesamten Inhalt von proc / [pid] Lesen Sie den gesamten Inhalt von proc / [pid] ~ von attr bis cpuset ~. Lesen Sie den gesamten Inhalt von proc / [pid] ~ von cwd bis loginuid ~.

Falsch, Sie können hier weitere Informationen finden, dieses Verzeichnis wird nicht mehr verwendet, Ich würde mich freuen, wenn Sie einen Kommentar abgeben könnten, wenn Sie Informationen haben.

# sleep 365d > /dev/null &
[1] 3792

# ls /proc/3792
attr             cwd       map_files   oom_adj        schedstat  task
autogroup        environ   maps        oom_score      sessionid  timers
auxv             exe       mem         oom_score_adj  setgroups  uid_map
cgroup           fd        mountinfo   pagemap        smaps      wchan
clear_refs       fdinfo    mounts      patch_state    stack
cmdline          gid_map   mountstats  personality    stat
comm             io        net         projid_map     statm
coredump_filter  limits    ns          root           status
cpuset           loginuid  numa_maps   sched          syscall

# cd /proc/3792

map_files

# ll map_files/
total 0
lr--------. 1 root root 64 Jan 12 04:15 400000-406000 -> /usr/bin/sleep
lr--------. 1 root root 64 Jan 12 04:15 606000-607000 -> /usr/bin/sleep
lr--------. 1 root root 64 Jan 12 04:15 607000-608000 -> /usr/bin/sleep
lr--------. 1 root root 64 Jan 12 04:15 7f8cfbd49000-7f8d02273000 -> /usr/lib/locale/locale-archive
lr--------. 1 root root 64 Jan 12 04:15 7f8d02273000-7f8d02436000 -> /usr/lib64/libc-2.17.so
lr--------. 1 root root 64 Jan 12 04:15 7f8d02436000-7f8d02636000 -> /usr/lib64/libc-2.17.so
lr--------. 1 root root 64 Jan 12 04:15 7f8d02636000-7f8d0263a000 -> /usr/lib64/libc-2.17.so
lr--------. 1 root root 64 Jan 12 04:15 7f8d0263a000-7f8d0263c000 -> /usr/lib64/libc-2.17.so
lr--------. 1 root root 64 Jan 12 04:15 7f8d02641000-7f8d02663000 -> /usr/lib64/ld-2.17.so
lr--------. 1 root root 64 Jan 12 04:15 7f8d02862000-7f8d02863000 -> /usr/lib64/ld-2.17.so
lr--------. 1 root root 64 Jan 12 04:15 7f8d02863000-7f8d02864000 -> /usr/lib64/ld-2.17.so

Speicherbereichszuordnung. Diese Datei entspricht dem Speicher von hier nach hier. Ich denke das ist die Information. maps

# cat maps
00400000-00406000 r-xp 00000000 08:01 16801948                           /usr/bin/sleep
00606000-00607000 r--p 00006000 08:01 16801948                           /usr/bin/sleep
00607000-00608000 rw-p 00007000 08:01 16801948                           /usr/bin/sleep
007aa000-007cb000 rw-p 00000000 00:00 0                                  [heap]
7f8cfbd49000-7f8d02273000 r--p 00000000 08:01 25166854                   /usr/lib/locale/locale-archive
7f8d02273000-7f8d02436000 r-xp 00000000 08:01 25166795                   /usr/lib64/libc-2.17.so
7f8d02436000-7f8d02636000 ---p 001c3000 08:01 25166795                   /usr/lib64/libc-2.17.so
7f8d02636000-7f8d0263a000 r--p 001c3000 08:01 25166795                   /usr/lib64/libc-2.17.so
7f8d0263a000-7f8d0263c000 rw-p 001c7000 08:01 25166795                   /usr/lib64/libc-2.17.so
7f8d0263c000-7f8d02641000 rw-p 00000000 00:00 0
7f8d02641000-7f8d02663000 r-xp 00000000 08:01 25166788                   /usr/lib64/ld-2.17.so
7f8d02859000-7f8d0285c000 rw-p 00000000 00:00 0
7f8d02861000-7f8d02862000 rw-p 00000000 00:00 0
7f8d02862000-7f8d02863000 r--p 00021000 08:01 25166788                   /usr/lib64/ld-2.17.so
7f8d02863000-7f8d02864000 rw-p 00022000 08:01 25166788                   /usr/lib64/ld-2.17.so
7f8d02864000-7f8d02865000 rw-p 00000000 00:00 0
7fff9fb35000-7fff9fb56000 rw-p 00000000 00:00 0                          [stack]
7fff9fbb0000-7fff9fbb2000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]

Es sind die Details von map_files. rwxp scheint für Lesen, Schreiben, Excv, Shared / Private zu stehen. Es scheint, dass es für die Baugruppenanalyse verwendet werden kann. mem cat mem führte zu cat: mem: Eingabe- / Ausgabefehler. Es scheint verwendet zu werden, wenn mit Funktionen wie "open (2), read (2)" auf den Speicher zugegriffen wird.

mountinfo

# cat mountinfo
18 39 0:18 / /sys rw,nosuid,nodev,noexec,relatime shared:6 - sysfs sysfs rw,seclabel
19 39 0:3 / /proc rw,nosuid,nodev,noexec,relatime shared:5 - proc proc rw
20 39 0:5 / /dev rw,nosuid shared:2 - devtmpfs devtmpfs rw,seclabel,size=292992k,nr_inodes=73248,mode=755
21 18 0:17 / /sys/kernel/security rw,nosuid,nodev,noexec,relatime shared:7 - securityfs securityfs rw
22 20 0:19 / /dev/shm rw,nosuid,nodev shared:3 - tmpfs tmpfs rw,seclabel
23 20 0:12 / /dev/pts rw,nosuid,noexec,relatime shared:4 - devpts devpts rw,seclabel,gid=5,mode=620,ptmxmode=000
24 39 0:20 / /run rw,nosuid,nodev shared:23 - tmpfs tmpfs rw,seclabel,mode=755
25 18 0:21 / /sys/fs/cgroup ro,nosuid,nodev,noexec shared:8 - tmpfs tmpfs ro,seclabel,mode=755
   ...

Es scheint, dass die detaillierten Informationen der gemounteten Datei beschrieben sind. Es gab 30 Zeilen mit Mount-Informationen, obwohl es nur ein Prozess zum Schlafen war. Ich möchte auch einen Artikel schreiben, um so etwas zu lesen.

mounts

# cat mounts
rootfs / rootfs rw 0 0
sysfs /sys sysfs rw,seclabel,nosuid,nodev,noexec,relatime 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
devtmpfs /dev devtmpfs rw,seclabel,nosuid,size=292992k,nr_inodes=73248,mode=755 0 0
securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0
tmpfs /dev/shm tmpfs rw,seclabel,nosuid,nodev 0 0
devpts /dev/pts devpts rw,seclabel,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
tmpfs /run tmpfs rw,seclabel,nosuid,nodev,mode=755 0 0
tmpfs /sys/fs/cgroup tmpfs ro,seclabel,nosuid,nodev,noexec,mode=755 0 0
cgroup /sys/fs/cgroup/systemd cgroup rw,seclabel,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd 0 0
    ...

Informationen ähnlich wie "mountinfo". mountstats

# cat mountstats
device rootfs mounted on / with fstype rootfs
device sysfs mounted on /sys with fstype sysfs
device proc mounted on /proc with fstype proc
device devtmpfs mounted on /dev with fstype devtmpfs
device securityfs mounted on /sys/kernel/security with fstype securityfs
device tmpfs mounted on /dev/shm with fstype tmpfs
device devpts mounted on /dev/pts with fstype devpts
    ...

Informationen einbinden. Gibt es 3 Dateien?

net

# ls net/
anycast6   fib_triestat   ip6_mr_vif          ip_tables_names    netstat              raw        snmp6         udp
arp        icmp           ip6_tables_matches  ip_tables_targets  nf_conntrack         raw6       sockstat      udp6
connector  if_inet6       ip6_tables_names    ipv6_route         nf_conntrack_expect  route      sockstat6     udplite
dev        igmp           ip6_tables_targets  mcfilter           packet               rt6_stats  softnet_stat  udplite6
dev_mcast  igmp6          ip_mr_cache         mcfilter6          protocols            rt_acct    stat          unix
dev_snmp6  ip6_flowlabel  ip_mr_vif           netfilter          psched               rt_cache   tcp           wireless
fib_trie   ip6_mr_cache   ip_tables_matches   netlink            ptype                snmp       tcp6          xfrm_stat

Es enthielt Informationen zur Vernetzung. Da die PPID 1 war, wurde sie von systemd gegabelt, also Alle diese Informationen scheinen eine Kopie der "systemd" -Informationen zu sein. Es gibt eine Theorie, dass ich von Anfang an "/ proc / 1" hätte lesen sollen.

ns

# ll ns
total 0
lrwxrwxrwx. 1 root root 0 Jan 12 04:48 ipc -> ipc:[4026531839]
lrwxrwxrwx. 1 root root 0 Jan 12 04:48 mnt -> mnt:[4026531840]
lrwxrwxrwx. 1 root root 0 Jan 12 04:48 net -> net:[4026531956]
lrwxrwxrwx. 1 root root 0 Jan 12 04:48 pid -> pid:[4026531836]
lrwxrwxrwx. 1 root root 0 Jan 12 04:48 user -> user:[4026531837]
lrwxrwxrwx. 1 root root 0 Jan 12 04:48 uts -> uts:[4026531838]

Es ist wie ein Ort, an dem der Namespace für diesen Prozess notiert wird.

# readlink -f ns/ipc
/proc/3792/ns/ipc:[4026531839]

Es scheint, dass es sich um einen symbolischen Link handelt, aber ich konnte nicht zum Linkziel gehen, also habe ich nach einem Referenzziel gesucht, aber es scheint, dass es hier ist. Ich bin nicht sicher, aber es wird über Kernelfunktionen während der Virtualisierung und Containertechnologie verwendet.

numa_maps

# cat numa_maps
00400000 default file=/usr/bin/sleep
00606000 default file=/usr/bin/sleep anon=1 dirty=1 N0=1 kernelpagesize_kB=4
00607000 default file=/usr/bin/sleep anon=1 dirty=1 N0=1 kernelpagesize_kB=4
007aa000 default heap anon=2 dirty=2 N0=2 kernelpagesize_kB=4
7f8cfbd49000 default file=/usr/lib/locale/locale-archive mapped=1 mapmax=11 N0=1 kernelpagesize_kB=4
7f8d02273000 default file=/usr/lib64/libc-2.17.so mapped=79 mapmax=35 N0=79 kernelpagesize_kB=4
7f8d02436000 default file=/usr/lib64/libc-2.17.so
7f8d02636000 default file=/usr/lib64/libc-2.17.so anon=4 dirty=4 N0=4 kernelpagesize_kB=4

Es ähnelt den Informationen in "Karten". Wahrscheinlich so ein Typ.

Impressionen

Es gab viele Informationen über "Mount". Ich kenne das Mount- und Dateisystem nicht, daher werde ich es bald studieren. Ich denke, die symbolische Verbindung ist in Ordnung.

Referenz

https://linuxjm.osdn.jp/html/LDP_man-pages/man5/proc.5.html http://man7.org/linux/man-pages/man5/proc.5.html https://linuxjm.osdn.jp/html/LDP_man-pages/man7/numa.7.html

Recommended Posts

Lesen Sie den gesamten Inhalt von proc / [pid] ~ Von map_files bis numa_maps ~
Lesen Sie den gesamten Inhalt von proc / [pid] ~ Von setgroups bis wchan ~
Lesen Sie den gesamten Inhalt von proc / [pid] ~ Von oom_adj bis sessionid ~
Lesen Sie den gesamten Inhalt von proc / [pid] ~ Von attr bis cpuset ~
Lesen Sie den gesamten Inhalt von proc / [pid]
Vorlage des Python-Skripts zum Lesen des Inhalts der Datei
Immerhin die Geschichte der Rückkehr von Linux zu Windows
Holen Sie sich den Inhalt von Git Diff aus Python
Von der Einführung von Pyethapp bis zur Vertragsabwicklung
Die Geschichte vom Umzug von Pipenv zur Poesie
[Bash] Übergibt den Inhalt der Datei beim Lesen an Variablen für jede Spalte
Die Wand beim Ändern des Django-Dienstes von Python 2.7 auf Python 3-Serie
Versuchen Sie, den Inhalt von Word mit Golang zu erhalten
DataNitro, Implementierung einer Funktion zum Lesen von Daten aus dem Blatt
Lesen Sie auch den Inhalt von arch / arm / kernel / swp_emulate.c
Ich habe die Chainer-Referenz gelesen (von Zeit zu Zeit aktualisiert).
[Ubuntu] So löschen Sie den gesamten Inhalt des Verzeichnisses
Berechnen des aus ABC134-D gelernten Rechenaufwands
Einstellungen zum Eingeben und Debuggen des Inhalts der Bibliothek mit VS-Code
[Einführung in matplotlib] Lesen Sie die Endzeit aus den COVID-19-Daten ♬
Bereitstellen von Django + Reagieren Sie von Grund auf auf GKE: Inhaltsverzeichnis
So sehen Sie den Inhalt der ipynb-Datei des Jupyter-Notizbuchs
Die Geschichte des Kopierens von Daten von S3 auf Googles TeamDrive
So verbinden Sie den Inhalt der Liste mit einer Zeichenfolge
Simulation des Inhalts der Brieftasche
Ich möchte die HTML-Version der OpenCV 3.1-Version "OpenCV-Python Tutorials" lesen
[EC2] So installieren Sie Chrome und den Inhalt jedes Befehls
Geben Sie den Inhalt von ~ .xlsx im Ordner mit Python in HTML aus
[TensorFlow 2] So überprüfen Sie den Inhalt von Tensor im Diagrammmodus
Von der Einführung von JUMAN ++ bis zur morphologischen Analyse von Japanisch mit Python
Erstellen Sie eine Funktion, um den Inhalt der Datenbank in Go abzurufen
Finden Sie alle Muster, um eine bestimmte Zahl aus dem Satz zu extrahieren
[Python] Ein Programm, das den Inhalt der Liste nach links dreht
Verstehen Sie den Inhalt der sklearn-Pipeline
Existenz aus Sicht von Python
Lesen des SNLI-Datensatzes
Siehe den Inhalt von Kumantic Segumantion
Ergänzung zur Erklärung von vscode
Von der Einführung der GoogleCloudPlatform Natural Language API bis zur Verwendung
Über die Reihenfolge des Lernens von Programmiersprachen (vom Anfänger bis zum Fortgeschrittenen) Teil 2
[Einführung in Python] So sortieren Sie den Inhalt einer Liste effizient mit Listensortierung
[Bilderkennung] Lesen des Ergebnisses der automatischen Annotation mit VoTT
So vergleichen Sie, ob der Inhalt der Objekte in scipy.sparse.csr_matrix identisch ist
Einstellung, um den Inhalt der Bibliothek mit pytest einzugeben und einen Debug-Test durchzuführen
Laden Sie gemeinsam die Bilder herunter, die in den Text der Pull-Anfrage auf Github eingefügt wurden
Holen Sie sich den Songtitel aus dem Titel des von Ihnen gesungenen Videos