[LINUX] Lesen Sie den gesamten Inhalt von proc / [pid] ~ Von cwd bis loginuid ~

Überblick

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

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

cwd

# ll cwd
lrwxrwxrwx. 1 root root 0 Jan 11 13:12 cwd -> /root

Ein symbolischer Link zum aktuellen Verzeichnis des Prozesses. Da ich es als Root-Benutzer ausgeführt habe, ist es / root. Der 3792 Prozess scheint als / root zu funktionieren. Klingt gefährlich.

environ

# cat environ
XDG_SESSION_ID=89SHELL=/bin/bashTERM=xtermHISTSIZE=1000USER=rootLS_COLORS=rs=0:di=01;34:ln=01;(Kürzung)

# tr \\0 \\n < environ
XDG_SESSION_ID=89
SHELL=/bin/bash
TERM=xterm
HISTSIZE=1000
USER=root
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;(Kürzung)
MAIL=/var/spool/mail/root
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
PWD=/root
LANG=en_US.UTF-8
HISTCONTROL=ignoredups
SHLVL=1
HOME=/root
LOGNAME=root
LESSOPEN=||/usr/bin/lesspipe.sh %s
_=/bin/sleep

Der Wert der Umgebungsvariablen. Es scheint durch Nullzeichen getrennt zu sein. Ich weiß nicht, ob es "Katze" ist. Der gleiche Inhalt wurde mit "ps ex | grep 3792" bestätigt.

Nachtrag

Das Konvertieren von \ 0 (NULL) in \ n (Unterbrechungslinie) als tr \\ 0 \\ n <environ erleichtert das Lesen.

exe

# ll exe
lrwxrwxrwx. 1 root root 0 Jan 11 13:12 exe -> /usr/bin/sleep

Ausführungsdatei symbolisch

fd

# ll fd
total 0
lrwx------. 1 root root 64 Jan 11 12:49 0 -> /dev/pts/0 (deleted)
l-wx------. 1 root root 64 Jan 11 12:49 1 -> /dev/null
lrwx------. 1 root root 64 Jan 11 14:26 2 -> /dev/pts/0 (deleted)

Ein Unterverzeichnis mit Einträgen für jede vom Prozess geöffnete Datei. Der Dateideskriptor ist der Dateiname, der eine symbolische Verknüpfung zur tatsächlichen Datei darstellt. Daher ist 0 die Standardeingabe, 1 die Standardausgabe, 2 die Standardfehlerausgabe usw. Zitat [https://linuxjm.osdn.jp/html/LDP_man-pages/man5/proc.5.html]

fd: = Abkürzung für File Descriptor. Das ist praktisch. Kann verwendet werden, wenn Sie die Ein- / Ausgabe überprüfen möchten

fdinfo

# ll fdinfo/
total 0
-r--------. 1 root root 0 Jan 11 12:49 0
-r--------. 1 root root 0 Jan 11 12:49 1
-r--------. 1 root root 0 Jan 11 12:49 2

# cat fdinfo/0 fdinfo/1 fdinfo/2
pos:    0
flags:  0100002
mnt_id: 23
pos:    0
flags:  0100001
mnt_id: 20
pos:    0
flags:  0100002
mnt_id: 23

Mit den obigen Informationen scheint der Prozess den Dateideskriptor identifizieren zu können.

gid_map,uid_map

# cat gid_map
         0          0 4294967295
# cat uid_map
         0          0 4294967295

Es scheint die Zuordnungsinformationen zu beschreiben, die erforderlich sind, um verschiedene UIDs und GIDs innerhalb und außerhalb des Benutzernamensraums zu verwenden. Dies wird hilfreich sein, also werde ich es später lesen. https://gihyo.jp/admin/serial/01/linux_containers/0016

io

# cat io
rchar: 2012
wchar: 0
syscr: 7
syscw: 0
read_bytes: 0
write_bytes: 0
cancelled_write_bytes: 0

Diese Datei zeigt Prozess-E / A-Statistiken an. ... rchar: Anzahl der zu lesenden Zeichen wchar: Anzahl der zu schreibenden Zeichen syscr: Anzahl der gelesenen Systemaufrufe syscw: Anzahl der Schreibsystemaufrufe read_bytes: Anzahl der zu lesenden Bytes write_bytes: Anzahl der zu schreibenden Bytes cancelled_write_bytes: ... (teilweise weggelassen) https://linuxjm.osdn.jp/html/LDP_man-pages/man5/proc.5.html

Der letzte sollte "die Anzahl der Bytes sein, die nicht schreiben konnten".

limits

# cat limits
Limit                     Soft Limit           Hard Limit           Units
Max cpu time              unlimited            unlimited            seconds
Max file size             unlimited            unlimited            bytes
Max data size             unlimited            unlimited            bytes
Max stack size            8388608              unlimited            bytes
Max core file size        0                    unlimited            bytes
Max resident set          unlimited            unlimited            bytes
Max processes             2288                 2288                 processes
Max open files            1024                 4096                 files
Max locked memory         65536                65536                bytes
Max address space         unlimited            unlimited            bytes
Max file locks            unlimited            unlimited            locks
Max pending signals       2288                 2288                 signals
Max msgqueue size         819200               819200               bytes
Max nice priority         0                    0
Max realtime priority     0                    0
Max realtime timeout      unlimited            unlimited            us

Es fasst die Ressourcengrenzen des Prozesses zusammen.

loginuid

# cat loginuid
1000

Wer ist uid 1000

# cat /etc/passwd | grep 1000
inahy:x:1000:1001::/home/inahy:/bin/bash

Es war meine UID, als ich mich bei ssh anmeldete. Derzeit ist es su zu [inahy] -> [root]. Wofür wirst du es verwenden?

Impressionen

Ich fühlte mich nicht gut und musste kopieren und einfügen. Ich möchte später Korrekturen vornehmen.

Referenz

http://man7.org/linux/man-pages/man5/proc.5.html https://gihyo.jp/admin/serial/01/linux_containers/0016 http://manpages.ubuntu.com/manpages/bionic/ja/man5/proc.5.html

Recommended Posts

Lesen Sie den gesamten Inhalt von proc / [pid] ~ Von cwd bis loginuid ~
Lesen Sie den gesamten Inhalt von proc / [pid] ~ Von setgroups bis wchan ~
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
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