Por que o / var / run foi migrado para / run?

66

A partir da visão geral técnica do Ubuntu 11.10 Oneiric :

  

O Ubuntu 11.10 foi migrado de /var/run , /var/lock e /dev/shm e agora usa /run , /run/lock e /run/shm (respectivamente).

  • Eu codifico esses caminhos em meus aplicativos, por que essa alteração é feita no Oneiric?
  • O que posso fazer para tornar meus aplicativos compatíveis com versões anteriores e posteriores? Existe uma maneira melhor do que verificar primeiro a existência de /run e, em seguida, /var/run ?
por Lekensteyn 16.08.2011 / 11:08

5 respostas

57

A intenção é reduzir o número de sistemas de arquivos tmpfs . No dia 11.04, há sistemas de arquivos tmpfs separados em /var/lock , /var/run e /dev/shm . Se esses diretórios estivessem todos sob um único diretório pai, apenas um único tmpfs seria necessário. Ele também fornece um local óbvio para mais dados de estado de tempo de execução que não devem persistir durante as reinicializações.

A menos que seu aplicativo dependa de caminhos canônicos de arquivos, seu aplicativo deverá ser executado sem modificação, já que os locais antigos serão links simbólicos para os novos. As políticas do AppArmor são um caso que depende dos nomes dos caminhos reais, e é por isso que foi mencionado especificamente.

Os links a seguir devem ajudar a explicar a justificativa:

por James Henstridge 16.08.2011 / 11:56
36
  1. /run é um novo local de tmpfs de distribuição cruzada para o armazenamento de arquivos de estado temporários - isto é, arquivos que contêm informações em tempo de execução que podem ou não precisar ser gravadas no início do processo de inicialização e que não exigem preservando através de reinicializações.

    A disponibilização do diretório /run nos aproxima do ponto em que é possível usar o sistema normalmente com o sistema de arquivos raiz montado como somente leitura, sem a necessidade de soluções alternativas desajeitadas, como aufs/unionfs overlays.

    /run substitui vários locais existentes descritos no Padrão de hierarquia do sistema de arquivos:

    • /var/run/run
    • /var/lock/run/lock
    • /dev/shm/run/shm [atualmente, apenas o Debian planeja fazer isso]
    • /tmp/run/tmp [opcional; atualmente apenas o Debian planeja oferecer isto]
    • /run também substitui alguns outros locais que foram usados para arquivos temporários:

    • /lib/init/rw/run

    • /dev/.*/run/*
    • /dev/shm/*/run/*
    • arquivos graváveis em /etc/run/*

    (então você provavelmente pode esperar que eles se movam também).

    Fonte: metas de lançamento da Debian

  2. Eu aconselharia a criação de uma parte em seu software onde você configura esses diretórios em variáveis, mude seu código para usar essas variáveis e então altere as variáveis com base no sistema em que é usado (mas eu aposto que você sabia que já).

por Rinzwind 16.08.2011 / 11:50
5

Pelo que li, esta foi a explicação original dada a respeito de porque / run foi introduzido. link

    
por gotunandan 16.08.2011 / 11:49
3

Nota: desde a introdução / run, pequenas configurações podem causar problemas. Meu servidor Ubuntu é 256Mo RAM e / run é por padrão definido como 49Mo.
Na inicialização, ele preenche o sistema de arquivos até a plenitude.
Fazer alterações no fstab não opera para aumentar o tamanho do tempfs / run. Nem os outros procedimentos que encontrei em gg.
Eu encontrei a solução para adicionar no script de inicialização: /etc/rc.local da linha     %código% para estender na inicialização. (O 85M é para o meu conf.)

    
por korrident 02.09.2012 / 14:48
2

Você não deve codificar nenhum desses /run caminhos!

  • Use /var/run , porque um link simbólico estará em vigor para /run se aplicável
  • /var/lock é o mesmo que acima
  • Não codifique /dev/shm ever, use sempre shm_open etc (a API posix)
por ramslök 10.07.2012 / 13:45

Tags