Linux-在其他位置存储pid文件而不是/ var / run


21

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

/ tmp可能是存放它的好地方,还是有缺点?


6
/ var / run有什么问题?
2012年

这个堆栈溢出问题是相关的:stackoverflow.com/q/5173636/1071869
Renan 2012年

与/ var / run中的唯一错误的事情是,我没有与我的用户给它写访问..
Murko

2
@Murko,则应将pid文件存储在用户的主目录中。
雷南

Answers:


22

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

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

该目录包含描述自引导以来的系统的系统信息数据。在引导过程开始时,必须清除(视情况删除或截断)此目录下的文件。程序可能具有/ var / run的子目录;对于使用多个运行时文件的程序,建议这样做。[脚注37]

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

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

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

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


9

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

/var/run/user/[$uid]

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.