3 votes

Quand est-ce que rm supprime les fichiers ouverts ?

En particulier, je veux savoir ce qui se passe lorsque je rends un fichier ouvert et que je ne tue pas explicitement le processus qui détient le descripteur de fichier de ce fichier. Le fichier sera-t-il supprimé lors de l'arrêt du système ?

3voto

Can Berk Güder Points 39887

En gros, oui, dès que le processus qui le maintient ouvert meurt. Rien de "magique" ne se produit à ce moment-là. De la même manière qu'une entrée de répertoire pour le fichier est un "lien dur" vers les blocs qui contiennent les données de ce fichier, il en est de même pour un identifiant de fichier ouvert. S'il n'y a pas d'entrée de répertoire ni d'identifiant de fichier ouvert, les blocs sont libres d'être réutilisés. Cela signifie que même si vous n'effectuez pas un arrêt complet (par exemple en tirant sur le cordon d'alimentation), le fichier sera quand même supprimé - il a été "supprimé" lorsque vous avez exécuté rm, mais ses blocs n'étaient pas immédiatement disponibles pour être réutilisés.

-1voto

Luis Colorado Points 125

Le noyau maintient une copie de l'inode du fichier en mémoire verrouillée afin que les blocs de données appartenant à ce fichier et à l'inode ne puissent pas être libérés pendant qu'un processus a le fichier ouvert. Une fois que le fichier est définitivement fermé (comme cela se produit lorsque le système est arrêté et que le processus est tué), tous les blocs et l'inode sont libérés pour être réutilisés. Cela se produit avant que le système de fichiers puisse être démonté (il ne peut pas être démonté s'il a des fichiers ouverts) et que le système soit arrêté.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X