mktemp
은 (기본값) /tmp
에 파일을 생성합니다. 많은 배포본에서 /tmp
은 영속적입니다 (예 : 메모리 백업이 아닌 디스크 백업).
당신이 찾고있는 것은 메모리 지원 마운트에 파일을 만드는 것입니다. 일반적으로 이들은 tmpfs
마운트입니다. 예를 들어, 내 아치 리눅스 노트북에, 내의 tmpfs 마운트는 다음과 같습니다
$ mount | grep tmpfs
[..]
run on /run type tmpfs (rw,nosuid,nodev,relatime,mode=755)
shm on /dev/shm type tmpfs (rw,nosuid,nodev,noexec,relatime)
그래서이 시스템에서, 내가 열고 /run
에 /dev/shm/
에서 파일을 작성하고 그들은 내 기억에 의해 백업됩니다 수 있습니다, 그들은하지 않습니다 부츠를 가로 질러 지속되면 액세스가 빠르고 저렴해질 것입니다.
위로 질문에, 당신은 mktemp
에 의해 사용되는 디렉터리를 변경할 수있는 것 같습니다. 맨 페이지 인용 :
-p DIR, --tmpdir[=DIR]
interpret TEMPLATE relative to DIR; if DIR is not specified, use $TMPDIR if set, else /tmp. With this option, TEMPLATE must not be
an absolute name; unlike with -t, TEMPLATE may contain slashes, but mktemp creates only the final component
편집을 - 몇 가지 :
- 이 모든 유통에 의존; 다른 배포본에서는
tmpfs
을 /tmp
에 마운트 할 수 있습니다.
- 흥미롭게도/dev/shm은
shm_open
으로 생성 된 공유 메모리 객체가 저장되는 곳입니다.
파일에 정보 또는 데이터 저장소가 있습니까? –
@AndrewHenle 파일에 정보가 없습니다. 부팅 후 처음 스폰 된 프로세스인지, 충돌 후 다시 생성 된 것인지 확인하는 방법으로 사용됩니다. – Manoj
(만들기 및 첨부) 공유 메모리 세그먼트. 프로세스 종료 (또는 충돌) 후에도 지속되지만 재부팅은 지속되지 않습니다. – wildplasser