Existe uma maneira de forçar um arquivo específico a existir apenas na RAM?

5

Eu gosto de esta sugestão de montar um tmpfs em /var/log em para reduzir as gravações em disco.

Existe alguma maneira de fazer algo semelhante apenas para um único arquivo, como ~/.xsession-errors ?

Meu incentivo para pedir vem de PowerTOP ,

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

mas também pode-se desejar fazer isso para acelerar um programa de I / O intensivo.

    
por ændrük 11.10.2010 / 17:48

1 resposta

5

Não, não há como forçar um único arquivo a não ser gravado no disco. As gravações em um arquivo são transmitidas para o código do sistema de arquivos: se o sistema de arquivos tiver backup de memória (por exemplo, tmpfs ), os dados serão gravados em um local de memória (virtual); se o sistema de arquivos for suportado por um dispositivo de bloco (por exemplo, ext3 / 4), os dados serão gravados no dispositivo de bloco.

Você pode, no entanto, ligar simbolicamente um arquivo específico a um local em um sistema de arquivos tmpfs ; isso funcionará enquanto: (1) o destino do symlink existir e (2) o link não for removido e o arquivo recriado no sistema de arquivos original (baseado em disco).

Sobre ~/.xession-errors , existe algum tratamento especial em /etc/X11/Xsession (linhas 63--72 a partir de x11-common versão 1: 7.5 + 5ubuntu1): se ~/.xsession-errors já é um link simbólico, , em seguida, é usado um arquivo temporário (no diretório $TMPDIR ou /tmp ). Portanto, se o seu sistema de arquivos /tmp ou $TMPDIR estiver montado a partir da RAM, você está pronto.

    
por Riccardo Murri 11.10.2010 / 20:01