Wie kann ich überprüfen, ob / proc / gemountet ist?
Von der Verwendung von / etc / mtab wird abgeraten, da dies möglicherweise inkonsistent ist.
Die Verwendung von / proc / mounts ist ebenfalls keine Option, da sie möglicherweise nicht vorhanden ist, wenn / proc / nicht bereitgestellt ist (obwohl die Überprüfung auf ihre Existenz eine Möglichkeit sein kann, diese Überprüfung durchzuführen.
Was ist der beste Weg, um diese Prüfung durchzuführen?
mount | grep proc
aus diesem Grund NICHT empfohlen habe, zu laufen .[[ -n $(mount -l -t proc) ]]
Test auf die Existenz von
/proc/mounts
. Das Ausführenmount
ist nicht gut, da es, wenn/proc
es nicht gemountet ist, möglicherweise veraltete Daten von zurückgibt/etc
.Theoretisch könnte es noch etwas anderes geben
/proc
. In der Praxis ist dies jedoch äußerst unwahrscheinlich: Wenn das Dateisystem/proc/mounts
vorhanden ist und/proc
nicht vorhanden istproc
, können Sie Ihrer Umgebung ohnehin nichts anvertrauen. Wenn Sie wirklich besorgt sind, können Sie überprüfen, ob der Dateisystemtyp lautetproc
:df -PT /proc | awk 'NR==2 && $2=="proc" {print 1}'
(erfordert die Linux-Dienstprogrammedf
, es gibt keine entsprechende Option in Busybox). Umgekehrt könnte theoretisch ein proc-Dateisystem an einem anderen Ort installiert sein. Es gibt keine einfache Möglichkeit, dies mit Shell-Befehlen zu finden (df
Lesevorgänge/proc/mounts
zum Auflisten von Dateisystemen). In der Praxis einfach nachsehen/proc/mounts
.quelle
Wenn Sie eine (mehr oder weniger) Garantie wünschen, dass das Dateisystem auf / proc tatsächlich proc ist, anstatt eines anderen Dateisystems oder einer Verzeichnisstruktur, die so aussieht, können Sie
statfs()
den Typ aufrufen und überprüfen,0x9fa0
ist der Wert für proc.quelle
mountpoint
In vielen Linux-Installationen ist ein Tool namens verfügbar. Der Exitcode ist 0, wenn das erste Argument ein Mountpoint ist.quelle