在Linux上Linux系统在运行时数据方面的工作方式发生了微小但重要的变化。如果您没有密切关注,您可能没有注意到Linux系统处理运行时数据的方式发生了一些小而重要的变化。它重新组织了它在文件系统中的访问方式和位置,这是大约八年前开始的变化。虽然此更改可能不足以让您大吃一惊,但它提供了跨Linux文件系统的更高一致性,值得探索。要开始,请转到/run。如果你使用df检查它,你会看到这样的输出:$df-k.Filesystem1K-blocksUsedAvailableUse%Mountedontmpfs60998426046073801%/run它被识别为“tmpfs”(临时文件系统),所以我们知道/run中的文件和目录并不存储在磁盘上,而只存在于内存中。它们代表保存在内存(或基于磁盘的交换空间)中的数据,它看起来像一个挂载的文件系统,可以更容易地访问和管理。/run是各种数据的所在地。例如,如果您查看/run/user,您会注意到一组具有数字名称的目录。$ls/run/user10001002121使用长文件列表来发现这些数字的意义。$ls-ltotal0drwx------5shsshs120Jun1612:441000drwx------5dorydory120Jun1616:141002drwx------8gdmgdm220Jun1412:18121我们看到每个目录都与当前登录的用户或显示管理器gdm相关联。数字代表他们的UID。每个目录的内容是运行进程使用的文件。/run/user文件只是/run中的一小部分。还有很多其他文件。有些文件包含各种系统进程的进程ID。$ls*.pidacpid.pidatopacctd.pidcrond.pidrsyslogd.pidatd.pidatop.pidgdm3.pidsshd.pid如下所示,上面列出的sshd.pid文件包含ssh守护进程(sshd)的进程ID。$猫sshd.pid1148$ps-ef|grepsshdroot114810Jun14?00:00:00/usr/sbin/sshd-D<==root107841148012:44?00:00:00sshd:shs[priv]shs1092210784012:44?00:00:00sshd:shs@pts/0root181091148016:13?00:00:00sshd:dory[priv]dory1823218109016:14?00:00:00sshd:dory@pts/1shs1927610923016:50pts/000:00:00grep--color=autosshd/run中的一些子目录只能以root权限访问,比如/run/须藤。例如,以root身份运行我们可以看到一些与真实或尝试的sudo相关的文件:/run/sudo/ts#ls-ltotal8-rw------1rootdory112Jun1616:37dory-rw------1rootshs168Jun1708:33shs为了与/run更改保持一致,运行时数据的一些旧位置现在是符号链接。/var/run现在是指向/run的指针,而/var/lock是指向/run/lock的指针,确保旧引用按预期工作。$ls-l/vartotal52drwxr-xr-x2rootroot4096Jun1707:36backupsdrwxr-xr-x19rootroot4096Apr1813:46cachedrwxrwsrwt2rootwhoopsie4096Jun1307:39crashdrwxr-xr-xr-rootroot4096Jun915:14libdrwxrwsr-x2rootstaff4096Oct162017locallrwxrwxrwx1rootroot9May142018lock->/run/lockdrwxrwxr-x17rootsyslog4096Jun1700:00wtunsrootJrmail61312:10maildrwxrwsrwt2rootwhoopsie4096Jan52018metricsdrwxr-xr-x2rootroot4096Jan52018optlrwxrwxrwx1rootroot4May142018run->/rundrwxr-xr-x9rootroot4096Jun162018xr-snapdr-wxx9rootroot4096Jun915:14spooldrwxrwxrwt8rootroot4096Jun1700:00tmpdrwxr-xr-x3rootroot4096Jan1912:14www虽然技术变化很小,但切换到using/run只是以便更好地组织Linux文件系统中的运行时数据。
