[LINUX] Lesen Sie den gesamten Inhalt von proc / [pid] ~ Von setgroups bis wchan ~

Ü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 ~. Lesen Sie den gesamten Inhalt von proc / [pid] ~ von oom_adj bis sessionid ~. 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

setgroups

# cat setgroups
allow

Es scheint, dass der Systemaufruf setgroups verwendet werden kann, wenn er zulässig ist. setgroups gibt eine Liste der Hilfsgruppen zurück. Was ist das? Glauben Sie, dass es eines Tages nützlich sein wird und denken Sie daran.

smaps

cat smaps
00400000-00406000 r-xp 00000000 08:01 16801948                           /usr/bin/sleep
Size:                 24 kB
Rss:                   0 kB
Pss:                   0 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:         0 kB
Referenced:            0 kB
Anonymous:             0 kB
AnonHugePages:         0 kB
Swap:                  0 kB
KernelPageSize:        4 kB
MMUPageSize:           4 kB
Locked:                0 kB
VmFlags: rd ex mr mp me dw sd
00606000-00607000 r--p 00006000 08:01 16801948                           /usr/bin/sleep
Size:                  4 kB
    ...

Dies scheint auch die Information des verwendeten Speichers zu sein. Die Speicherverwaltung scheint schwierig zu sein. Welches soll ich mir ansehen?

stack

# cat stack
[<ffffffffaa2cb09b>] hrtimer_nanosleep+0xbb/0x180
[<ffffffffaa2cb1f6>] SyS_nanosleep+0x96/0xb0
[<ffffffffaa98dede>] system_call_fastpath+0x25/0x2a
[<ffffffffffffffff>] 0xffffffffffffffff

Es scheint sich um die Informationen zu handeln, die im Stapel im Speicher gespeichert sind.

stat

# cat stat
3792 (sleep) S 1 3792 2132 0 -1 1077944320 284 0 0 0 0 0 0 0 20 0 1 0 31848330 110546944 65 18446744073709551615 4194304 4218500 140735872847584 140735872847112 140243604047856 0 0 0 0 18446744072269639835 0 0 17 0 0 0 0 0 0 6319400 6320704 8036352 140735872850184 140735872850195 140735872850195 140735872851949 0

statm

# cat statm
26989 65 47 6 0 78 0

Es scheint sich um Informationen über die Speichernutzung zu handeln, die Seite für Seite gemessen werden.

status

# cat status
Name:   sleep
Umask:  0022
State:  S (sleeping)
Tgid:   3792
Ngid:   0
Pid:    3792
PPid:   1
TracerPid:      0
Uid:    0       0       0       0
Gid:    0       0       0       0
FDSize: 256
Groups: 0
VmPeak:   107956 kB
VmSize:   107956 kB
    ...

Es scheint, dass Sie die grundlegenden Informationen und den Betriebsstatus des Prozesses sehen können. Wenn Sie sich so viel ansehen, können Sie sich vielleicht einen Überblick über die Situation verschaffen.

syscall

# cat syscall
35 0x7fff9fb54d10 0x0 0x0 0x7fff9fb54760 0x0 0x0 0x7fff9fb54d08 0x7f8d023387f0

Es scheint, dass die Adressen des Systemaufrufs, des Stapelzeigers, des Programmzählers usw., die ausgeführt werden, aufgelistet sind.

task

# ll task/
total 0
dr-xr-xr-x. 7 root root 0 Jan 12 04:48 3792

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

Es gab eine ähnliche Datei im "3792" -Prozess. Es scheint die Beziehung zwischen Prozessen und Threads zu sein.

timers Es scheint, dass Sie eine Liste der Timer sehen, die dieser Prozess hat. In dieser Umgebung zeigten "Katzen-Timer" nichts.

uid_map Dies wurde zuvor in gid_map eingeführt, daher werde ich es weglassen.

wchan

# cat wchan
hrtimer_nanosleep

Es ist eine Abkürzung für Wait Channel. Ich wusste keine weiteren Informationen

Impressionen

Es war die Hölle, weil ich nur schreiben musste, wenn ich es von der Mitte aus nicht verstand. Mein Ziel war es, es vorerst aufzuschreiben, also schrieb ich es in zwei Tagen auf. Ich war zuversichtlich, dass ich es niemals anfassen würde, wenn ich es zu einem späteren Zeitpunkt drehte, also überlebte ich geduldig. Ich hoffe, weitere Informationen hinzuzufügen, sobald ich weitere Informationen verstehen kann.

Referenz

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

Recommended Posts

Lesen Sie den gesamten Inhalt von proc / [pid] ~ Von setgroups bis wchan ~
Lesen Sie den gesamten Inhalt von proc / [pid] ~ Von cwd bis loginuid ~
Lesen Sie den gesamten Inhalt von proc / [pid] ~ Von map_files bis numa_maps ~
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
Ändern Sie den Dezimalpunkt der Protokollierung von, nach.
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
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
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
[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