Ist es möglich, dass ein Ordner wie /proc/4587existiert, obwohl es keinen Prozess mit PID 4587 gibt?
Ist es möglich, dass ein Ordner wie /proc/4587existiert, obwohl es keinen Prozess mit PID 4587 gibt?
Antworten:
Wenn /procnur der procMount (und niemand spielt Streiche mit Overlays), nein, ein pid-basierter Ordner existiert nur, solange der entsprechende Prozess in einem bestimmten Zustand existiert (auch als Zombie). Kurz bevor ein Verzeichniseintrag für eine Prozess-ID zurückgegeben wird, überprüft der Kernel die Existenz des Prozesses erneut. In dem Moment, in dem ein Verzeichniseintrag zurückgegeben wird, ist der entsprechende Prozess noch vorhanden. Der Zugriff auf ein Verzeichnis beginnt auch mit dem Nachschlagen des entsprechenden Prozesses. (Wenn sich die Zeilennummern ändern, suchen Sie nach proc_pident_instantiateund proc_pident_lookup.)
Sie können auf Probleme stoßen, die durch das Auflisten /procund Verwenden der Ergebnisse später (sogar einige Mikrosekunden später) verursacht werden: Ein Prozess kann ausgeführt werden, wenn Sie auflisten /proc, und anhalten, bevor Sie auf die Ergebnisse reagieren.
wait()nicht aufgerufen wurden?
psder Prozess angezeigt wird, sollte sein /procVerzeichnis grundsätzlich vorhanden sein.
psZugriffe /proc, um die angezeigten Informationen zu finden.