我有一个应用程序,它创建了许多unix套接字来与其在运行时生成的所有进程进行交互。我认为/ run / appname将是他们居住的好地方,因为据我了解,/ run应该用于仅来自应用程序运行时有效的应用程序信息。
但是我发现
$ mkdir /run/appname
mkdir: cannot create directory '/run/appname': Permission denied
那么,为什么普通用户不能在/ run中创建文件?它是干什么用的?我应该只保留/ tmp吗?
您应该将它们放在$XDG_RUNTIME_DIR
是否设置了变量的子目录中。请参阅XDG Basedir标准:https ://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
如果未设置,则有一些地方可以考虑。/run/user/<user-id>
用户登录时会创建许多发行版(或某些版本),因此如果$XDG_RUNTIME_DIR
未设置,它可能是开始查找的最佳位置。如果失败的话,我会退后一步/tmp
。您可能会尝试在/ tmp中创建一个随机命名的目录,或者在使用您的应用程序名称的用户名/ id之后创建该目录,chown
并将其提供给该应用程序的用户,设置任何适当的权限,然后在其中放置套接字。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句