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

Mur*_*rko 25 linux unix pid

正如标题所写,我应该在哪里让init脚本编写pid文件?我应该选择任何标准路径而不是 /var/run 吗?

/tmp 是否是一个存储它的好地方,或者它有什么缺点?

Ren*_*nan 27

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

/var/run文件系统层次结构标准

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

一个理想的功能是大多数发行版会自动清理它(与/tmp某些发行版中的启动时不清理不同) - 这避免了陈旧的 pid 文件:

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

您可以选择存储它的位置,但我会选择标准。

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


Use*_*ion 16

如果它/var/run是您需要的非 root 写入访问权限,请注意其中有/var/run/user针对单个用户的子目录。您只需要获取当前用户的 UID:

/var/run/user/[$uid]