`/ run / shm` (이전의`/ dev / shm`)을 임시 디렉토리로 사용하십시오


9

디렉토리에 /run/shm(이전 /dev/shm) 디렉토리를 만들어서 임시 디렉토리처럼 사용하는 것이 좋은 습관 입니까?

배경 : 파일과 디렉토리로 많은 일을하는 프로그램에 대한 블랙 박스 테스트를 작성하고 있습니다. 모든 테스트에 대해 많은 파일과 디렉토리를 작성한 다음 프로그램을 실행 한 다음 예상되는 파일과 디렉토리 세트를 작성한 후 diff를 실행하여 비교하십시오. 나는 지금 약 40 테스트를 가지고 있으며 그들은 이미 실행하는 데 2 ​​초 이상이 걸렸습니다. 속도를 높이기 위해 일종의 램 디스크 디렉토리에서 테스트를 실행하고 싶습니다.

램 디스크에 대한 연구에서 나는 디렉토리를 만들고 임시 디렉토리처럼 사용하는 것이 좋다는 대답 으로 질문에 걸려 넘어 졌습니다 /dev/shm. 그러나 좀 더 연구 하면 데비안 의 위키 페이지 를 우연히 발견하여 /dev/shm직접 사용하는 것이 오류라고 주장했습니다 . shm_*기능을 사용해야합니다 . 불행히도이 shm_*기능은 쉘 스크립트에서 사용할 수없는 것 같습니다.

이제 혼란 스러워요. 임시 디렉토리처럼 /run/shm(이전 /dev/shm) 사용 하는 것이 좋습니까?


예, 많은 사용자 /tmp가 공유 메모리에 마운트 합니다.
Eddy_Em

나는 그것이 /tmp더 의미 론적 이라고 상상할 것이다 . 사용자가 /dev/shm임시 파일을 사용하여 작업 속도를 높이는 데 충분한 램을 가지고 있다면 거기에 마운트합니다. 그러나 램이 충분하지 않고 마운트하면 모든 프로세스가 스왑 파일을 사용하도록 강제하여 컴퓨터 속도가 느려지면 더 중요한 것을 위해 램을 저장하고 /tmp파일 시스템에 일반 디스크 공간을 사용합니다 . 즉, /tmp더 조정 가능합니다.
Jack

답변:


10

/run적절한 권한이있는 한 일부 디렉토리를 사용 하는 것이 좋습니다. 일부 최신 배포판에서는 /tmp이미 메모리에 가상 파일 시스템이거나 내부 디렉토리에 대한 심볼릭 링크 /run입니다. 이 경우 (에서 확인 /etc/fstab하거나 입력 mtab할 수 있음) /tmp임시 디렉토리로 사용할 수 있습니다 .

또한 데비안 기사와 혼동하지 마십시오. shm_*기능은 프로세스 간 통신을위한 공유 메모리 세그먼트를 작성하는 데 사용됩니다. 이러한 기능을 사용하면 둘 이상의 프로세스간에 메모리 조각을 공유하여 동일한 데이터를 사용하여 통신하거나 공동 작업 할 수 있습니다. 프로세스는 자신의 주소 공간에 메모리 세그먼트가 연결되어 있으며 평소처럼 읽고 쓸 수 있습니다. 커널은 복잡성을 처리합니다. 이러한 함수는 쉘 함수로 사용할 수 없으며 쉘 컨텍스트에서는 그다지 유용하지 않습니다. 자세한 내용은를 참조하십시오 man 7 shm_overview. 이 기사의 요점은 어떤 프로그램도 공유 세그먼트를 나타내는 의사 파일을 직접 관리하지 말고 적절한 기능을 사용하여 공유 메모리 세그먼트를 작성, 첨부 및 삭제해야한다는 것입니다.


2
아래에서 가장 적절한 장소 /run는입니다 /run/user/${UID}/.
Paul Fenney 2014

1
실제로 내 시스템에서 pulseaudio 및 systemd는 pid 파일과 같은 일부 파일을 설치합니다. 그러나 / tmp는 여전히 임시 파일의 선호 위치입니다.
lgeorget

2
@PaulFenney : / run / user / $ UID는 $ XDG_RUNTIME_DIR이라고도합니다.
user2394284
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.