Si vous n'êtes pas les plus sensibles à l'utilisation de gdb, il existe un moyen peu convivial de les obtenir ici: stackoverflow.com/questions/165212/…
MelBurslan
Réponses:
21
À partir du noyau Linux 4.7 ( commit ), le umask est disponible dans /proc/<pid>/status.
Oui, et RHEL7.4 est 3.10.0, donc je ne comprends pas le commentaire sur 4.7.
hagello
À droite, certains noyaux plus anciens ne fournissent pas d'informations sur l'umask, par exemple 2.6.18. Cependant, la fonctionnalité est déjà présente dans 3.10.0. Ainsi, vous ne devez pas dire que cette solution ne fonctionne pas avant le noyau 4.7.
hagello
Stéphane a eu la gentillesse de modifier mon article pour créer un lien vers le commit qui indique clairement que lorsqu'il a été ajouté, il est beaucoup plus récent que 3.10. Il est peut-être apparu beaucoup plus tôt dans le noyau corrigé de RHEL, mais pas encore dans le noyau principal, je ne sais pas.
egmont
15
Remarque: cette réponse s'applique aux noyaux Linux 4.6 et versions antérieures. Voir la réponse de @ egmont pour les nouvelles versions du noyau.
L'umask n'est pas exposé dans procfs. On a tenté de l'ajouter sans grand succès.
Il existe un moyen d'obtenir le umask gdb, comme cela a été expliqué ci-dessus :
Une autre alternative est, si vous pouvez contrôler le processus en cours, d'écrire le umask dans un fichier, une sortie ou quelque chose de similaire et de l'obtenir à partir de là.
Juste pour que cette réponse apparaisse également lors de la recherche sur ces termes, elle explique également comment modifier umask du processus en cours d'exécution (car pour l'obtenir, il faut le changer temporairement). Je l'ai d'abord rejeté lors de la recherche.
Hugues M.
4
Sous Linux, avec systemtap(as root), vous pourriez faire
Faire un cat /proc/4321/statdéclencherait cette sonde sur l' do_task_statendroit où nous pouvons accéder au fs->umaskchamp du processus correspondant ' task_structdans le noyau.
Réponses:
À partir du noyau Linux 4.7 ( commit ), le umask est disponible dans
/proc/<pid>/status
.la source
Remarque: cette réponse s'applique aux noyaux Linux 4.6 et versions antérieures. Voir la réponse de @ egmont pour les nouvelles versions du noyau.
L'umask n'est pas exposé dans procfs. On a tenté de l'ajouter sans grand succès.
Il existe un moyen d'obtenir le umask
gdb
, comme cela a été expliqué ci-dessus :Gardez à l'esprit que gdb arrête le processus et ses threads, donc le changement temporaire d'umask est négligeable.
Si cela convient à votre cas, vous pouvez utiliser ce revêtement:
Une autre alternative est, si vous pouvez contrôler le processus en cours, d'écrire le umask dans un fichier, une sortie ou quelque chose de similaire et de l'obtenir à partir de là.
la source
Sous Linux, avec
systemtap
(asroot
), vous pourriez faireFaire un
cat /proc/4321/stat
déclencherait cette sonde sur l'do_task_stat
endroit où nous pouvons accéder aufs->umask
champ du processus correspondant 'task_struct
dans le noyau.la source