Centos6

在 RHEL6/CentOS6 上使用 /dev/shm 文件夾儲存 pid 文件?

  • November 13, 2018

RHEL7/CentOS7 有一個專用文件夾: $ XDG_RUNTIME_DIR (e.g. /run/user/1000) for pid files, that folder is a tmpfs. However RHEL6/CentOS6 does not have $ XDG_RUNTIME_DIR。

RHEL6(也是 RHEL7)有一個使用類似類型的文件夾:/dev/shm。經過網上的一些測試和搜尋,我意識到它是用於 IPC 目的的方便地方,並且在其中放置小 pid 文件似乎也可以。

所以問題是:將此文件夾用於 pid 文件是否有任何缺點。

(不使用 /tmp 等其他文件夾的範例:有一個 crontab 作業每隔幾天刪除 pid 文件導致服務不穩定)

參考:

https://www.cyberciti.biz/tips/what-is-devshm-and-its-practical-usage.html https://wiki.archlinux.org/index.php/tmpfs

在 RHEL 6 上,PID 文件幾乎總是在/var/run其中或其子目錄中。該目錄僅在引導時被清除。在 RHEL 7 上,這個目錄現在是/run並且/var/run符號連結到它以實現向後兼容性。

您提到的目錄$XDG_RUNTIME_DIR使用者程序使用,而不是系統服務。

不過,您並不是真的要為此濫用/dev/shm。該目錄存在於通過共享記憶體進行通信以提供備份儲存的程序。

你可以使用這個區域來放置pid文件,沒有缺點。實際上,您可以將 pid 文件放置在您的應用程序具有寫入權限的任何位置。將 pid 文件放置在某些地方是一種慣例,以便輕鬆找到它們並且不會污染周圍的一切。此外,將文件放在 tmpfs 中,您可以確保系統重新啟動後不會有舊的 pid 文件。

引用自:https://serverfault.com/questions/939747