Storing pid file for a daemon run as user

痴心易碎 提交于 2019-11-30 22:46:48

问题


Is there a preferred place to store a pid file for a daemon that's run as a user? /var/run is the standard place, but this is for a user daemon so it doesn't have write privileges there. Presumably my daemon will be started from .profile or .bashrc or something. Is just saving it to /tmp a bad idea?


回答1:


If it's being run for a user, let's see, what sort of storage exists that is user-specific.

Hmmm.

That's it! The home directory. I knew it would come to me eventually :-)


Sorry for the light jab. Seriously, I would just stash the PID into $HOME/.daemon.pid or ~/.daemon.pid (how you name the file is up to you of course).

This is, of course, assuming you will only have one daemon running for a user. If not, you'll need to be a bit trickier.


And hopefully allaying your fears that a user will inadvertently delete unknown files in their home directory, that's why you make it "hidden" by starting it with a . character.

Most non-experienced users should never even see these and experienced users should know better than to muck about with them.




回答2:


The XDG Basedir specification defines where you should store these.
The variable $XDG_RUNTIME_DIR defines it's location, although it has no default.
The most common fallback (if the variable is unset) is /tmp/service-$USER.id.

This helps keep uncluttered homedirs, while keeping all runtime data in




回答3:


I suggest you go for a subdirectory within the user's home directory.

~/.programname/.pid

If there is any other user configuration data, you can store that in here too, in order to avoid cluttering up the home directory.



来源:https://stackoverflow.com/questions/3957242/storing-pid-file-for-a-daemon-run-as-user

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!