/ var / run이 / run으로 마이그레이션 된 이유는 무엇입니까?


66

Ubuntu 11.10 Oneiric기술 개요에서 :

우분투 11.10 떨어져있다 마이그레이션 /var/run, /var/lock그리고 /dev/shm현재 사용하고 /run, /run/lock그리고 /run/shm대신 (각각).

  • 내 응용 프로그램에서 이러한 경로를 하드 코딩했는데 왜 Oneiric이 변경 되었습니까?
  • 애플리케이션을 이전 버전과 이전 버전과 호환되도록하려면 어떻게해야합니까? 더 좋은 방법이의 존재를 처음으로 확인 이외의 거기에 /run다음과 /var/run?

답변:


58

tmpfs파일 시스템 수를 줄이는 것이 목적입니다 . 11.04에,이 별도 tmpfs의 파일 시스템 /var/lock, /var/run/dev/shm. 이러한 디렉토리가 모두 단일 상위 디렉토리 아래에 있으면 단일 디렉토리 만 tmpfs필요합니다. 또한 재부팅시 지속되지 않아야하는 추가 런타임 상태 데이터를위한 확실한 위치를 제공합니다.

응용 프로그램이 정식 파일 경로에 의존하지 않는 한, 이전 위치는 새로운 위치에 연결되므로 수정없이 실행해야합니다. AppArmor 정책은 실제 경로 이름에 따라 달라지는 하나의 사례이므로 구체적으로 언급했습니다.

다음 링크는 이론적 근거를 설명하는 데 도움이됩니다.


36
  1. /run 임시 상태 파일을 저장하기위한 새로운 교차 배포 tmpfs 위치입니다. 즉, 부팅 프로세스 초기에 작성해야 할 수도 있고 필요하지 않을 수있는 런타임 정보가 포함 된 파일이며 재부팅시 보존이 필요하지 않습니다.

    제작 /run디렉토리를 사용할 것은 걸음 더 가까이 그와 같은 어떤 어설픈 해결을 요구하지 않고, 루트 파일 시스템을 마운트 읽기 전용으로 일반적으로 시스템을 사용할 수있는 점에 우리에게 가져다 aufs/unionfs오버레이.

    /run 파일 시스템 계층 표준에 설명 된 여러 기존 위치를 대체합니다.

    • /var/run/run
    • /var/lock/run/lock
    • /dev/shm/run/shm[현재 데비안 만이이 계획을 세웁니다]
    • /tmp/run/tmp[선택 사항; 현재 데비안 만이 이것을 제공 할 계획입니다.]
    • /run 또한 임시 파일에 사용 된 다른 위치를 대체합니다.

    • /lib/init/rw/run

    • /dev/.*/run/*
    • /dev/shm/*/run/*
    • 아래의 쓰기 가능한 파일 /etc/run/*

    (아마도 이것들이 움직일 것으로 기대할 수 있습니다).

    출처 : 데비안 릴리즈 목표

  2. 이 디렉토리를 변수로 설정하고 변수를 사용하도록 코드를 변경 한 다음 사용 된 시스템을 기반으로 변수를 변경하는 소프트웨어 부분을 작성하는 방법에 대한 조언이 있습니다 (그러나 이미 알고 있음).


1
당신은 쓰기 가능한 파일을 어떻게에서 뜻 이죠 /etc. 재부팅 후에도 계속 유지되어야합니까? 그것은 일반적인 conf 파일입니다.
Evan Carroll

6
아 알 겠어요 세 개의 파일에서 /etc, /etc/lvm/cache/ /etc/mtab /etc/network/run/ifstate/etc/adjtime. 나는 그들이 /etc시작 하는 것이 좋지 않다고 생각합니다 .
Evan Carroll


3

참고 : / run 소개 이후 작은 구성에는 문제가 발생할 수 있습니다. 내 우분투 서버는 256Mo RAM이고 / run은 기본적으로 49Mo로 설정되어 있습니다.
시작할 때 파일 시스템이 가득 찰 때까지 파일 시스템을 채 웁니다.
fstab을 변경해도 tempfs / run 크기가 증가하지 않습니다. gg에서 찾은 다른 절차도 없습니다.
init 스크립트에 추가 할 솔루션을 찾았습니다 : 시작시 확장 /etc/rc.local되는 줄 mount -t tmpfs tmpfs /run -o remount,size=85M. (85M은 내 conf를위한 것입니다.)


2

이러한 /run경로를 하드 코딩해서는 안됩니다 !

  • 해당되는 경우 /var/run심볼릭 링크가 있으므로을 사용하십시오 ./run
  • /var/lock 위와 동일
  • 하드 코딩하지 말고 /dev/shm항상 shm_openetc (posix API)를 사용하십시오.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.