Linux
Linux 文件層次結構 - 儲存鎖定文件的最佳位置是什麼?
我想根據鎖文件(/socket 文件)來同步程序。這些文件只能由其創建者使用者移除。
有很多選擇:
/dev/shm
/var/lock
/run/lock
/run/user/<UID>
/tmp
為此目的的最佳位置是什麼?以上位置的用途是什麼?
/dev/shm
: 只不過是傳統共享記憶體概念的實現而已。它是在程序之間傳遞數據的有效方法。一個程序將創建一個記憶體部分,其他程序(如果允許)可以訪問該記憶體部分。這將導致加快速度。/run/lock
(以前/var/lock
)包含鎖定文件,即指示共享設備或其他系統資源正在使用中的文件,並包含使用它的程序 (PID) 的標識;這允許其他程序正確協調對共享設備的訪問。/tmp
: 是Filesystem Hierarchy Standard中定義的臨時文件的位置,幾乎所有 Unix 和 Linux 發行版都遵循該位置。由於 RAM 比磁碟儲存快得多,因此如果您的程序是 I/O 密集型並且廣泛使用臨時文件,則可以使用它/dev/shm
來代替/tmp
性能提升。/run/user/$uid
: 由pam_systemd
該使用者創建並用於儲存執行程序所使用的文件。談到您的問題,您絕對可以使用
/run/lock
目錄來儲存您的鎖定文件。