Wenn Sie mit gdb nicht schwache Nerven haben, gibt es eine nicht so benutzerfreundliche Möglichkeit, diese Informationen hier zu erhalten: stackoverflow.com/questions/165212/…
MelBurslan
Antworten:
20
Ab Linux Kernel 4.7 ( Commit ) ist die Umask in verfügbar /proc/<pid>/status.
Ja, und RHEL7.4 ist 3.10.0, daher verstehe ich den Kommentar zu 4.7 nicht.
Hagello
Richtig, einige ältere Kernel liefern keine Informationen über die Umask, zum Beispiel 2.6.18. Das Feature ist jedoch bereits in 3.10.0 vorhanden. Daher sollten Sie nicht sagen, dass diese Lösung vor Kernel 4.7 nicht funktioniert.
Hagello
Stéphane war so freundlich, meinen Beitrag so zu bearbeiten, dass er auf das Commit verweist, das eindeutig besagt, dass es viel neuer als 3.10 ist, als es hinzugefügt wurde. Vielleicht erschien es viel früher im gepatchten Kernel von RHEL, aber noch nicht im Hauptkernel, ich weiß es nicht.
egmont
15
Hinweis: Diese Antwort gilt für Linux-Kernel 4.6 und früher. Siehe @ egmonts Antwort für neuere Versionen des Kernels.
Die Umask ist in procfs nicht verfügbar. Es wurde versucht , es ohne großen Erfolg hinzuzufügen.
Es gibt eine Möglichkeit, die Umask zu verwenden gdb, wie hier zuvor erläutert wurde :
Eine andere Alternative besteht darin, wenn Sie den laufenden Prozess steuern können, die Umask in eine Datei, eine Ausgabe oder ähnliches zu schreiben und von dort abzurufen.
Damit diese Antwort auch beim Googeln dieser Begriffe angezeigt wird , wird auch erläutert, wie Sie die Umask des laufenden Prozesses ändern können (da für das Abrufen diese vorübergehend geändert werden muss). Ich habe es bei der Suche zunächst abgelehnt.
Hugues M.
4
Unter Linux könnten Sie mit systemtap(as root) tun
Wenn Sie a cat /proc/4321/statausführen, wird diese Prüfung ausgelöst, do_task_statwenn wir auf das fs->umaskFeld des entsprechenden Prozesses task_structim Kernel zugreifen können .
Antworten:
Ab Linux Kernel 4.7 ( Commit ) ist die Umask in verfügbar
/proc/<pid>/status
.quelle
Hinweis: Diese Antwort gilt für Linux-Kernel 4.6 und früher. Siehe @ egmonts Antwort für neuere Versionen des Kernels.
Die Umask ist in procfs nicht verfügbar. Es wurde versucht , es ohne großen Erfolg hinzuzufügen.
Es gibt eine Möglichkeit, die Umask zu verwenden
gdb
, wie hier zuvor erläutert wurde :Beachten Sie, dass gdb den Prozess und seine Threads stoppt, sodass die vorübergehende Änderung von umask vernachlässigbar ist.
Wenn das für Ihren Fall gut ist, können Sie diesen Oneliner verwenden:
Eine andere Alternative besteht darin, wenn Sie den laufenden Prozess steuern können, die Umask in eine Datei, eine Ausgabe oder ähnliches zu schreiben und von dort abzurufen.
quelle
Unter Linux könnten Sie mit
systemtap
(asroot
) tunWenn Sie a
cat /proc/4321/stat
ausführen, wird diese Prüfung ausgelöst,do_task_stat
wenn wir auf dasfs->umask
Feld des entsprechenden Prozessestask_struct
im Kernel zugreifen können .quelle