잠금 파일(/socket 파일)을 기반으로 프로세스를 동기화하고 싶습니다. 이러한 파일은 작성자 사용자만 삭제할 수 있습니다.
다양한 옵션이 있습니다:
/dev/shm
/var/lock
/run/lock
/run/user/<UID>
/tmp
이 목적에 가장 적합한 위치는 어디입니까? 위 장소의 목적은 무엇입니까?
답변1
/dev/shm
: 이것은 단지 전통적인 구현일 뿐입니다.공유 메모리개념. 이는 프로그램 간에 데이터를 전송하는 효율적인 방법입니다. 프로그램은 다른 프로세스가 액세스할 수 있는(허용된 경우) 메모리의 일부를 생성합니다. 이로 인해 속도가 향상됩니다./run/lock
(전에/var/lock
)잠금 파일이 포함되어 있습니다.즉, 공유 장치 또는 기타 시스템 리소스가 사용 중임을 나타내고 이를 사용하는 프로세스의 식별(PID)을 포함하는 파일입니다. 이를 통해 다른 프로세스가 공유 장치에 대한 액세스를 적절하게 조정할 수 있습니다./tmp
: 정의된 임시 파일의 위치입니다.파일 시스템 계층 표준, 거의 모든 Unix 및 Linux 배포판이 따릅니다. RAM은 디스크 스토리지보다 훨씬 빠르기 때문에 다음을 수행할 수 있습니다.성능 향상을 위해/dev/shm
대신 사용/tmp
, 프로세스가 I/O 바인딩되어 있고 임시 파일을 많이 사용하는 경우./run/user/$uid
: 창작자pam_systemd
그리고 사용자가 프로세스를 실행하는 데 사용하는 파일을 저장하는 데 사용됩니다.
귀하의 질문에 대해서는 /run/lock
디렉토리를 사용하여 잠금 파일을 저장할 수 있습니다.
답변2
아래에 디렉터리를 만들고 /run/lock
chmod를 700으로 변경한 다음 그 안에 잠금 파일을 만듭니다.
/var/lock
/run/lock
Linux Mint의 경우 링크입니다(Ubuntu, Linux Mint 17 및 CentOS 7의 경우).
/run/user/<UID>
로그인했을 때만 프로세스가 실행되는 경우 아래 콘텐츠만 저장하겠습니다.