Neden / var / run, / run'a taşındı?


66

Gönderen Ubuntu 11.10 Oneiric teknik bakış :

Ubuntu 11.10 uzağa göç etti /var/run, /var/lockve /dev/shmşimdi kullanan /run, /run/lockve /run/shmbunun yerine (sırasıyla).

  • Bu yolları uygulamalarımda kodluyorum, bu değişiklik neden Oneiric'e yapılıyor?
  • Uygulamalarımı geriye ve ileriye uyumlu hale getirmek için ne yapabilirim? Daha iyi bir yol bulunduğuna yönelik ilk kontrol dışında var mıdır /runsonra ve /var/run?

Yanıtlar:


58

Amaç tmpfsdosya sistemlerinin sayısını azaltmaktır . 11.04 tarihinde, orada ayrı tmpfsolarak dosya sistemleri /var/lock, /var/runve /dev/shm. Bu dizinlerin tümü tek bir üst dizinde tmpfsolsaydı , o zaman sadece bir tane gerekli olurdu. Ayrıca, yeniden başlatma işlemlerine devam etmemesi gereken başka çalışma zamanı durum verileri için bariz bir konum sağlar.

Uygulamanız dosyaların kurallı yollarına bağlı değilse, eski konumlar yenilere bağlandığından uygulamanızın herhangi bir değişiklik yapmadan çalışması gerekir. AppArmor politikaları, gerçek yol adlarına bağlı olan bir durumdur, bu nedenle özellikle belirtilmiştir.

Aşağıdaki bağlantılar gerekçeyi açıklamaya yardımcı olmalıdır:


36
  1. /run geçici durum dosyalarının depolanması için yeni bir çapraz dağıtım tmpfs konumu; yani, önyükleme işleminin başında yazılıp yazması gerekebilecek veya gerekmeyebilecek ve yeniden başlatmalar arasında korunmayı gerektirmeyen çalışma zamanı bilgileri içeren dosyalar.

    Yapımı /rundizin mevcut bir adım daha yakın o gibi herhangi aksak geçici çözümler gerektirmeden, kök dosya sistemi monte salt okunur normalde sistemi kullanmak mümkündür noktaya getiriyor aufs/unionfsbindirmeleri.

    /run Dosya Sistemi Hiyerarşisi Standardında açıklanan mevcut birkaç konumu değiştirir:

    • /var/run/run
    • /var/lock/run/lock
    • /dev/shm/run/shm[şu anda sadece Debian bunu yapmayı planlıyor]
    • /tmp/run/tmp[isteğe bağlı; şu anda sadece Debian bunu sunmayı planlıyor]
    • /run ayrıca geçici dosyalar için kullanılan diğer bazı konumların yerini alır:

    • /lib/init/rw/run

    • /dev/.*/run/*
    • /dev/shm/*/run/*
    • altında yazılabilir dosyalar /etc/run/*

    (Bu yüzden muhtemelen bunların da hareket etmesini bekleyebilirsiniz).

    Kaynak: debian yayın hedefleri

  2. Yazılımınızda, bu dizinleri değişkenlere ayarladığınız, bu değişkenleri kullanmak için kodunuzu değiştirebileceğiniz ve ardından kullanılan sisteme göre değişkenleri değiştirebileceğiniz bir bölüm oluşturmanızı tavsiye ederim (ama bunu zaten biliyorsunuzdur).


1
Yazılabilir dosyaları ne demek istiyorsun /etc? Bunların hepsi yeniden başlatılmaya devam etmeli, değil mi? Bu sadece genel conf dosyaları.
Evan Carroll

6
Ah anlıyorum. Üç dosya altında /etc, /etc/lvm/cache/ /etc/mtab /etc/network/run/ifstateve yakında /etc/adjtime. Sanırım /etcbaşlamak için içeri girmeleri kötü oldu .
Evan Carroll


3

Not: / run girişinden bu yana, küçük yapılandırmalarda sorunlar olabilir. Ubuntu sunucum 256MO RAM'dir ve / run varsayılan olarak 49Mo'dur.
Başlangıçta, dosya sistemini dolgunluğa kadar doldurur.
Fstab’da değişiklik yapılması, tempfs / run boyutunu artırmak için çalışmaz. Başkalarının da gg'de bulduğum işlemler yok.
Init betiğine eklemek için bir çözüm buldum: başlangıçta genişletilecek /etc/rc.localsatır mount -t tmpfs tmpfs /run -o remount,size=85M. (85M benim konfim için.)


2

Bu /runyollardan hiçbirini kodlamamalısınız !

  • Kullan /var/runbir sembolik için yerinde olacaktır, çünkü /runeğer varsa
  • /var/lock yukarıdaki ile aynı
  • Hiç kod yazmayın /dev/shm, her zaman shm_openetc kullanın (posix API)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.