什么是/ run / user / 1000文件夹?


84

这个文件夹是什么:/run/user/1000在我的Fedora系统上,它有什么作用?

~ $ df -h
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           1.2G   20K  1.2G   1% /run/user/1000

编辑:2019年6月7日。

我的两个答案在此目录中存储的目录或位置不同:

帕特里克

在此之前systemd,这些应用程序通常将其文件存储在中/tmp

再次在这里:

/tmp是唯一指定的位置,该位置FHS是本地的,并且所有用户均可写入。

布赖恩

此目录的用途曾经由/var/run。通常,出于向后兼容的目的,程序可能会继续使用/var/run来满足提出的要求/run

再次在这里:

除非另有说明,否则已迁移使用的程序/run应停止使用 。/var/run/var/run

那么是哪个的父亲/run/user/1000,为什么一个答案中都没有提及另一个关于以前使用的目录的内容/run/user


在这两个答案中,都没有提及其他人对/ run / user之前使用的目录的说法,因为只有一个人对此进行了实际讨论。Braiam的答案讨论/ run之前使用的目录,而不是/ run / user。
David Yockey

1
帕特里克(Patrick)提出了对“ / run / user / 1000的父亲”问题的答案,这是有道理但没有根据的陈述。Braiam没有解决这个问题。过去运行的进程使用的文件(即临时文件)的存储位置可能只是假定为标准的/ tmp目录。如果是这样,很难证实这一点,因为很少有人提供传统或显而易见的书面记录。提供充分的答案可能需要对计算机历史进行一些协调的研究。
David Yockey

感谢您的输入
somethingSomething

Answers:


94

/run/user/$uidpam_systemd该用户创建并用于存储该用户正在运行的进程使用的文件。这些可能是诸如密钥环守护程序,pulseaudio等之类的东西。

系统化之前,这些应用程序通常将其文件存储在中/tmp/home/$user由于主目录通常通过网络文件系统挂载,因此它们不能使用位置,并且这些文件不应在主机之间共享。/tmpFHS指定的唯一本地且可被所有用户写入的位置。

但是,将所有这些文件存储在每个人都可以写的文件中/tmp是有问题的/tmp,尽管您可以更改正在创建的文件的所有权和模式,但使用起来更加困难。

于是systemd诞生了/run/user/$uid。该目录在系统本地,并且只能由目标用户访问。因此,希望将文件存储在本地的应用程序不再需要担心访问控制。
它还可以使事情保持井井有条。当用户注销并且没有剩余活动会话时,pam_systemd将清除该/run/user/$uid目录。由于周围散布着各种文件/tmp,您无法执行此操作。


18
应该提到的是它被称为$ XDG_RUNTIME_DIR,记录在standard.freedesktop.org/basedir-spec/basedir-spec-latest.html
o11c 2014年

如果发生以下情况,该怎么办:我已经使用启动了“后台”计算过程nohup,并将其中间结果/数据保存在临时文件中。我可以指望它在进程运行时不会被擦除,还是会被擦除,而nohup从其开始的进程会丢失其数据?
imz –伊万·扎哈拉里舍夫(Ivan Zakharyaschev)

它不太可能被擦除,但是/ run / user是fedora中的tmpfs文件系统,因此它将限于为其分配的空间量。请参阅上面的df输出。
jsbillings

如果pidfile是在root下运行的服务,该怎么办。它的PID应该放在/ var / run或/ var / run / user / 0下吗?如果由于没有活动的会话,将其删除吗?
TSG

11

根据FHS(文件层次结构标准)的最新草案,/ run:

该目录包含描述自引导以来的系统的系统信息数据。在引导过程开始时,必须清除(视情况删除或截断)此目录下的文件。

该目录的用途曾经由/ var / run服务。通常,出于向后兼容的目的,程序可能会继续使用/ var / run来满足针对/ run提出的要求。迁移到使用/ run的程序应该停止使用/ var / run,除非/ var / run一节中另有说明。

程序可能具有/ run子目录;对于使用多个运行时文件的程序,建议这样做。用户也可能具有/ run子目录,尽管必须注意适当限制访问权限,以防止未经授权使用/ run本身和其他子目录。

对于/run/user目录,供不同的用户服务使用,例如dconf,pulse,systemd等,它们需要一个用于放置其锁定文件和套接字的位置。系统中登录的目录与不同用户的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.