我不会将pidfile放在诸如的应用程序安装目录下
/opt/my_app/whatever。该目录可以是只读的,可以在机器之间共享,可以由守护程序监视,该守护程序会将任何更改视为可能的闯入尝试。
pidfiles的正常位置是
/var/run。大多数unices会在启动时清理此目录;在Ubuntu下,这是通过
/var/run内存文件系统(tmpfs)实现的。
如果您从以root用户身份运行的脚本启动守护程序,请让它创建一个子目录,
/var/run/gmooredaemon并将其锁定给运行守护程序的用户,然后再
su转到该用户并启动该守护程序。
在许多现代Linux系统上,如果您从不是以root用户身份运行的脚本或启动器启动守护程序,则可以将pidfile放入
/run/user/$UID其中,这与传统的每用户等效
/var/run。请注意,启动器的根部分或以root用户身份运行的启动脚本需要创建目录(对于人类用户,该目录是在用户登录时创建的)。
否则,请在
/tmp或下选择一个位置
/var/tmp,但这会增加额外的复杂性,因为pidfile的名称是否位于世界可写目录中,无法唯一确定。
在任何情况下,分发者或管理员都可以轻松地(命令行选项,也许还有编译时选项)更改pidfile的位置。



