是否存在为以用户身份运行的守护程序存储pid文件的首选位置? / var / run是标准位置,但这适用于用户守护程序,因此它没有写入权限。据推测,我的守护进程将从.profile或.bashrc或其他东西开始。只是把它保存到/ tmp一个坏主意?
答案 0 :(得分:9)
如果它是为用户运行的,那么让我们看看,存在哪种类型的用户特定存储。
嗯。
就是这样!主目录。我知道最终会来找我: - )
抱歉光刺。说真的,我只是将PID存入$HOME/.daemon.pid
或~/.daemon.pid
(当然,你如何命名文件)。
当然,这是假设您只为用户运行一个守护程序。如果没有,你需要有点棘手。
并希望减轻您对用户无意中删除其主目录中的未知文件的担忧,这就是为什么您通过使用.
字符启动它来“隐藏”它。
大多数没有经验的用户都不应该看到这些用户,而且有经验的用户应该比知道用户更好。
答案 1 :(得分:8)
XDG Basedir specification定义了您应该存储这些内容的位置
变量$XDG_RUNTIME_DIR
定义了它的位置,尽管它没有默认值
最常见的后备(如果未设置变量)是/tmp/service-$USER.id
。
这有助于保持整洁的homedirs,同时保留所有运行时数据
答案 2 :(得分:0)
我建议你去用户主目录中的子目录。
~/.programname/.pid
如果有任何其他用户配置数据,您也可以将其存储在此处,以避免使主目录混乱。