[LINUX] Lesen Sie den gesamten Inhalt von proc / [pid] ~ Von attr bis cpuset ~

Überblick

Ich würde mich freuen, wenn Sie die Details unter Lesen Sie den gesamten Inhalt von proc / [pid] lesen könnten.

# 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

attr/

# ls attr/
current  exec  fscreate  keycreate  prev  sockcreate
# cat current
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
# cat prev
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

Es war eine leere Datei mit Ausnahme von "current" und "prev". Bei der Prüfung scheinen diese Dateien von der SELinux-Funktion referenziert zu werden. Unter Linux können Sie Lese-, Schreib- und Ausführungsberechtigungen für Dateien und Verzeichnisse mit einer Funktion namens Berechtigungen verwalten. Eine Erweiterung davon ist eine Funktion namens SELinux. Es scheint, dass es durch den Wert des SELinux-Kontexts anstelle der Berechtigung verwaltet wird.

Es scheint, dass "current" den SELinux-Kontext dieses Prozesses selbst beschreibt und "prev" den SELinux-Kontext des zuletzt ausgeführten Prozesses beschreibt. (Es ist nicht gut verstanden) Der in der durch diesen Prozess erstellten Datei festgelegte SELinux-Kontext scheint in exec geschrieben zu sein. Da / proc / 3792 / exec diesmal eine leere Datei ist, scheint sie mit dem Standardwert erstellt zu sein.

Hier können Sie den Standardwert überprüfen.

# semanage login -l

Login Name           SELinux User         MLS/MCS Range        Service

__default__          unconfined_u         s0-s0:c0.c1023       *
root                 unconfined_u         s0-s0:c0.c1023       *
system_u             system_u             s0-s0:c0.c1023       *

Ich werde in Zukunft SELinux studieren.

autogroup

# cat autogroup
/autogroup-401 nice 0

Es scheint, dass der von der CPU für die Planung verwendete Wert beschrieben wird.

auxv

# ll | grep auxv
-r--------. 1 root root 0 Jan 12 05:09 auxv

# cat auxv
! Tempel
     d@@Awa d

  Rindfleisch ゚  Klasse P  Saugen

# od -x auxv
0000000 0021 0000 0000 0000 0000 9fbb 7fff 0000
0000020 0010 0000 0000 0000 fbff 1f8b 0000 0000
0000040 0006 0000 0000 0000 1000 0000 0000 0000
0000060 0011 0000 0000 0000 0064 0000 0000 0000
0000100 0003 0000 0000 0000 0040 0040 0000 0000
0000120 0004 0000 0000 0000 0038 0000 0000 0000
    ....

Enthält Informationen zum ELF-Interpreter, die zur Laufzeit an den Prozess übergeben werden. http://surf.ml.seikei.ac.jp/~nakano/JMwww/html/LDP_man-pages/man5/proc.5.html

Und das. Es scheint, dass auxv ein Hilfsvektor ist. Ich habe "od" und "hexdump" ausprobiert, konnte es aber aufgrund der Aufzählung von Zahlen nicht verstehen. Selbst wenn Sie auf "Datei aux v" klicken, wird diese als "./auxv: leer" angezeigt, wahrscheinlich weil es sich um eine spezielle Datei handelt. Es scheint, dass der Zweck darin besteht, eine Funktion durchzulesen.

Es scheint, dass die ausführbare Datei ein Format namens ELF hat. Es scheint, dass die Header-Informationen beschrieben werden. Ich wusste nicht, wie ich die verstümmelten Charaktere reparieren sollte.

cgroup

# cat cgroup
11:cpuset:/
10:blkio:/
9:devices:/user.slice
8:hugetlb:/
7:net_prio,net_cls:/
6:perf_event:/
5:memory:/
4:cpuacct,cpu:/
3:pids:/
2:freezer:/
1:name=systemd:/user.slice/user-1000.slice/session-89.scope

cgroup ist eine Funktion, mit der Sie Prozesse einschränken können. Es scheint, dass Sie die CPU-Auslastungsrate und die obere Speichergrenze im Detail festlegen können. Aufwärtskompatibel mit Autogruppe. Von links: Hierarchie-ID-Nummer: Eine Reihe von Subsystemen, die der Hierarchie zugeordnet sind: Kontrollgruppen in der Hierarchie, zu der der Prozess gehört Korrekt. Studium erforderlich.

clear_refs

# cat clear_refs
cat: clear_refs: Invalid argument

Ich wurde wütend, als ich cated.

# ll clear_refs
--w-------. 1 root root 0 Jan 11 06:40 clear_refs

Ich hatte nur Schreibberechtigung mit Root-Rechten. Ich habe es mit "vi clear_refs" geöffnet, aber es war eine leere Datei. Beziehen Sie sich bei der Messung des Speichers? Es scheint. Ich habe nicht zu viel verstanden.

Nachtrag

Wenn die Berechtigungen nur zum Schreiben gelten, z. B. -w -------, Es ist beabsichtigt, etwas zu tun, indem Daten in diese Datei geschrieben werden.

Ich habe einen Kommentar erhalten. Es scheint, dass etwas durch diese Datei getan wird. Ich möchte den Quellcode des Kernels "CentOS" lesen können. cmdline

# cat cmdline
sleep365d

# tr \\0 _ < cmdline
sleep_365d_

Der Befehl, der ausgeführt wurde, als der Prozess gestartet wurde. Es scheint, dass auch Argumente (wie ls -l) angezeigt werden. Das Trennzeichen war \ 0 (NULL).

comm

# cat comm
sleep

Der von ps -c angezeigte Befehlsname.

coredump_filter

# cat coredump_filter
00000033

Es scheint, dass es sich um eine Bitfiltereinstellung des Fehlers handelt, der ausgelöst wird, wenn der Prozess abnormal beendet wird. Ich weiß nicht, welche Maske jeder 00000033 ist.

spuset

# cat cpuset
/

Es scheint von cgroup referenziert zu werden. Ich habe viel gesucht, aber es tut mir leid.

Impressionen

Es gab zu viele Dinge, die ich nicht verstand. Ich mache mir Sorgen, ob der Artikel, den ich twittere, aussagekräftig ist, wenn ich ihn nicht verstehe. Erstens gab es viele Inhalte wie "Wird dieser Artikel jetzt verwendet ...?", Also konnte ich ihn nicht unterscheiden. Ich möchte auf jeden Fall die cgroup festhalten.

Referenz

http://blue-9.hatenadiary.com/entry/2017/03/14/212929 http://www.usupi.org/sysad/024.html http://man7.org/linux/man-pages/man5/proc.5.html https://www.atmarkit.co.jp/flinux/rensai/watch2007/watch10a.html https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/6/html/resource_management_guide/sec-cpuset https://blog.goo.ne.jp/tell14/e/d03e57fbe77a73f7991da7016824cfbf http://manpages.ubuntu.com/manpages/bionic/ja/man5/proc.5.html

Recommended Posts

Lesen Sie den gesamten Inhalt von proc / [pid] ~ Von attr bis cpuset ~
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]
Vorlage des Python-Skripts zum Lesen des Inhalts der Datei
Immerhin die Geschichte der Rückkehr von Linux zu Windows
Ä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
Die Wand beim Ändern des Django-Dienstes von Python 2.7 auf Python 3-Serie
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
[EC2] So installieren Sie Chrome und den Inhalt jedes Befehls
Geben Sie den Inhalt von ~ .xlsx im Ordner mit Python in HTML aus
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
[Python] Ein Programm, das den Inhalt der Liste nach links dreht
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