Linux - 存储 pid 文件的替代位置(而不是 /var/run)

Linux - 存储 pid 文件的替代位置(而不是 /var/run)

正如标题所写,我应该让 init 脚本在哪里写入 pid 文件?我应该选择什么标准路径来代替/var/run

那里是存储它的好地方吗/tmp?或者那里有什么缺点?

(历史背景:在现代分布中/var/run现在是一个符号链接,/var但我的问题是相同的。)

答案1

简而言之:您可以将其存储在任何地方(例如,/tmp/var/tmp),但这/var/run是首选标准。

/var/run是个文件系统层次标准

此目录包含系统信息数据,用于描述系统自启动以来的情况。启动过程开始时,必须清除此目录下的文件(根据需要删除或截断)。程序可以有一个 /var/run 子目录;对于使用多个运行时文件的程序,我们鼓励这样做。[脚注 37]

一个理想的特点是大多数发行版自动清理/tmp与某些发行版在启动时不会清理不同) - 这可以避免过时的 pid 文件:

pidfiles 的正常位置是 /var/run。大多数 unices 会在启动时清理此目录;在 Ubuntu 下,这是通过内存文件系统 (tmpfs) /var/run 实现的。

您可以选择将其存储在何处,但我会遵循标准。

如果您无权访问/var/run,则应将 pid 文件存储在用户的主目录中,例如~/.my_app.pid

答案2

如果您需要非 root 写权限/var/run,请注意,其中有/var/run/user供各个用户使用的子目录。您只需要获取当前用户的 UID:

/var/run/user/[$uid]

相关内容