web-dev-qa-db-fra.com

Existe-t-il un moyen de forcer un fichier spécifique à exister dans RAM uniquement?

J'aime cette suggestion de monter un tmpfs à /var/log afin de réduire les écritures sur disque.

Existe-t-il un moyen de faire quelque chose de similaire pour un seul fichier tel que ~/.xsession-errors?


Mon incitation à demander vient de PowerTOP ,

The program 'gnome-do' is writing to file '.xsession-errors' on /dev/sdb2.
This prevents the disk from going to powersave mode.

mais on pourrait également envisager de le faire afin d'accélérer un programme intensif en OI.

6
ændrük

Non, il est impossible de forcer un seul fichier à ne pas être écrit sur le disque. Les écritures dans un fichier sont transmises au code du système de fichiers: si le système de fichiers est sauvegardé par la mémoire (par exemple, tmpfs), les données sont écrites dans un emplacement de mémoire (virtuel); si le système de fichiers est soutenu par un périphérique de bloc (par exemple, ext3/4), les données sont écrites sur le périphérique de bloc.

Vous pouvez cependant créer un lien symbolique entre un fichier spécifique et un emplacement dans un système de fichiers tmpfs; cela fonctionnera tant que: (1) la destination du lien symbolique existe, et (2) le lien n'est pas supprimé et le fichier recréé dans le système de fichiers d'origine (sur disque).

Concernant ~/.xession-errors, il existe un traitement spécial dans /etc/X11/Xsession (lignes 63 à 72 à partir du x11-common version 1: 7.5 + 5ubuntu1): si ~/.xsession-errors est déjà un lien symbolique, puis un fichier temporaire (dans le répertoire $TMPDIR ou /tmp) est utilisé à la place. Donc, si votre /tmpou $TMPDIR le système de fichiers est monté à partir de la RAM, vous avez terminé.

5
Riccardo Murri