[LINUX] Lire tout le contenu de proc / [pid] ~ De map_files à numa_maps ~

Aperçu

Je vous serais reconnaissant si vous pouviez jeter un coup d'œil aux détails ici.

Lire tout le contenu de proc / [pid] Lire tout le contenu de proc / [pid] ~ d'attr à cpuset ~ Lire tout le contenu de proc / [pid] ~ de cwd à loginuid ~

Faux, vous pouvez trouver plus d'informations ici, ce répertoire n'est plus utilisé, Je vous serais reconnaissant si vous pouviez commenter si vous avez des informations.

# 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

Allocation de zone de mémoire. Ce fichier correspond à la mémoire d'ici à ici. Je pense que ce sont les informations. 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]

Ce sont les détails de map_files. rwxp semble représenter respectivement lecture, écriture, excv, partagé / privé. Il semble qu'il puisse être utilisé pour l'analyse d'assemblage. mem cat mem a abouti à cat: mem: Erreur d'entrée / sortie. Il semble être utilisé lors de l'accès à la mémoire en utilisant des fonctions telles que ʻopen (2), read (2) `.

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
   ...

Il semble que les informations détaillées du fichier monté soient décrites. Il y avait 30 lignes d'informations de montage même s'il ne s'agissait que d'un processus de veille. Je veux aussi faire un article pour lire ce genre de chose.

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
    ...

Informations similaires à 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
    ...

Montez les informations. Y a-t-il 3 fichiers?

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

Il contenait des informations sur le réseautage. Puisque le PPID était 1, il a été dérivé de systemd, donc Toutes ces informations semblent être une copie des informations systemd. Il y a une théorie selon laquelle j'aurais dû lire / proc / 1 depuis le début.

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]

C'est comme un endroit pour noter l'espace de noms de ce processus.

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

Il semble que ce soit un lien symbolique, mais je n'ai pas pu aller à la destination du lien, j'ai donc cherché une destination de référence, mais il semble que ce soit ici. Je ne suis pas sûr, mais il sera utilisé via les fonctions du noyau lors de la virtualisation et de la technologie des conteneurs.

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

C'est similaire aux informations dans maps. Probablement un tel type.

Impressions

Il y avait beaucoup d'informations sur mount. Je ne connais pas le système de montage et de fichiers, donc je l'étudierai bientôt. Je pense que le lien symbolique est bon.

référence

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

Lire tout le contenu de proc / [pid] ~ De map_files à numa_maps ~
Lire tout le contenu de proc / [pid] ~ De setgroups à wchan ~
Lire tout le contenu de proc / [pid] ~ De oom_adj à sessionid ~
Lire tout le contenu de proc / [pid] ~ De attr à cpuset ~
Lire tout le contenu de proc / [pid]
Modèle de script python pour lire le contenu du fichier
Après tout, l'histoire du retour de Linux à Windows
Récupérer le contenu de git diff depuis python
De l'introduction de pyethapp à l'exécution du contrat
Histoire de passer de Pipenv à la poésie
[Bash] Passez le contenu du fichier aux variables pour chaque colonne avec while read
Le mur lors du passage du service Django de Python 2.7 à la série Python 3
Essayez d'obtenir le contenu de Word avec Golang
DataNitro, implémentation de la fonction de lecture des données de feuille
Lisez également le contenu de arch / arm / kernel / swp_emulate.c
J'ai lu la référence Chainer (mise à jour de temps en temps)
[Ubuntu] Comment supprimer tout le contenu du répertoire
Comment calculer la quantité de calcul appris de ABC134-D
Paramètres pour entrer et déboguer le contenu de la bibliothèque avec VS Code
[Introduction à matplotlib] Lire l'heure de fin à partir des données COVID-19 ♬
Déployer Django + React de zéro sur GKE: Table des matières
Comment voir le contenu du fichier ipynb du notebook Jupyter
L'histoire de la copie de données de S3 vers TeamDrive de Google
Comment connecter le contenu de la liste dans une chaîne de caractères
Simulation du contenu du portefeuille
Je veux lire la version html de la version "OpenCV-Python Tutorials" OpenCV 3.1
[EC2] Comment installer Chrome et le contenu de chaque commande
Exportez le contenu de ~ .xlsx dans le dossier en HTML avec Python
[TensorFlow 2] Comment vérifier le contenu de Tensor en mode graphique
De l'introduction de JUMAN ++ à l'analyse morphologique du japonais avec Python
Créez une fonction pour obtenir le contenu de la base de données dans Go
Trouvez tous les modèles pour extraire un nombre spécifique de l'ensemble
[Python] Un programme qui fait pivoter le contenu de la liste vers la gauche
Comprendre le contenu du pipeline sklearn
Existence du point de vue de Python
Comment lire l'ensemble de données SNLI
Voir le contenu de Kumantic Segumantion
Supplément à l'explication de vscode
De l'introduction de l'API GoogleCloudPlatform Natural Language à son utilisation
À propos de l'ordre d'apprentissage des langages de programmation (de débutant à intermédiaire) Partie 2
[Introduction à Python] Comment trier efficacement le contenu d'une liste avec le tri par liste
[Reconnaissance d'image] Comment lire le résultat de l'annotation automatique avec VoTT
Comment comparer si le contenu des objets dans scipy.sparse.csr_matrix est le même
Paramètre pour entrer le contenu de la bibliothèque avec pytest et effectuer un test de débogage
Téléchargez collectivement les images collées dans le corps de la pull request sur Github
Obtenez le titre de la chanson à partir du titre de la vidéo que vous avez chanté