Linux 系统在运行时数据方面的工作方式发生了微小但重大的变化。

 

 

 

如果你没有密切关注,你可能没有注意到 Linux 系统在运行时数据方面的工作方式有一些小但重大的变化。 它重新组织了文件系统中可访问的方式和位置,而这个变化在大约八年前就开始了。虽然这种变化可能不足以让你的袜子变湿,但它在 Linux 文件系统中提供了更多一致性,值得进行一些探索。

要开始,请转到 /run。如果你使用 df 来检查它,你会看到这样的输出:

$ df -k .Filesystem     1K-blocks  Used Available Use% Mounted ontmpfs             609984  2604    607380   1% /run复制代码

它被识别为 “tmpfs”(临时文件系统),因此我们知道 /run 中的文件和目录没有存储在磁盘上,而只存储在内存中。它们表示保存在内存(或基于磁盘的交换空间)中的数据,它看起来像是一个已挂载的文件系统,这个可以使其更易于访问和管理。

/run 是各种各样数据的家园。例如,如果你查看 /run/user,你会注意到一组带有数字名称的目录。

$ ls /run/user1000  1002  121复制代码

使用长文件列表可以发现这些数字的重要性。

$ ls -ltotal 0drwx------ 5 shs  shs  120 Jun 16 12:44 1000drwx------ 5 dory dory 120 Jun 16 16:14 1002drwx------ 8 gdm  gdm  220 Jun 14 12:18 121复制代码

我们看到每个目录与当前登录的用户或显示管理器 gdm 相关。数字代表他们的 UID。每个目录的内容都是运行中的进程所使用的文件。

/run/user 文件只是你在 /run 中找到的一小部分。还有很多其他文件。有一些文件包含了各种系统进程的进程 ID。

$ ls *.pidacpid.pid  atopacctd.pid  crond.pid  rsyslogd.pidatd.pid    atop.pid       gdm3.pid   sshd.pid复制代码

如下所示,上面列出的 sshd.pid 文件包含 ssh 守护程序(sshd)的进程 ID。

$ cat sshd.pid1148$ ps -ef | grep sshdroot      1148     1  0 Jun14 ?        00:00:00 /usr/sbin/sshd -D    <==root     10784  1148  0 12:44 ?        00:00:00 sshd: shs [priv]shs      10922 10784  0 12:44 ?        00:00:00 sshd: shs@pts/0root     18109  1148  0 16:13 ?        00:00:00 sshd: dory [priv]dory     18232 18109  0 16:14 ?        00:00:00 sshd: dory@pts/1shs      19276 10923  0 16:50 pts/0    00:00:00 grep --color=auto sshd复制代码

/run 中的某些子目录只能使用 root 权限访问,例如 /run/sudo。例如,以 root 身份运行我们可以看到一些与真实或尝试使用 sudo 相关的文件:

/run/sudo/ts# ls -ltotal 8-rw------- 1 root dory 112 Jun 16 16:37 dory-rw------- 1 root shs  168 Jun 17 08:33 shs复制代码

为了与 /run 的变化保持一致,一些运行时数据的旧位置现在是符号链接。/var/run 现在是指向 /run 的指针,/var/lock 指向 /run/lock 的指针,可以保证旧的引用按预期工作。

$ ls -l /vartotal 52drwxr-xr-x  2 root root     4096 Jun 17 07:36 backupsdrwxr-xr-x 19 root root     4096 Apr 18 13:46 cachedrwxrwsrwt  2 root whoopsie 4096 Jun 13 07:39 crashdrwxr-xr-x 75 root root     4096 Jun  9 15:14 libdrwxrwsr-x  2 root staff    4096 Oct 16  2017 locallrwxrwxrwx  1 root root        9 May 14  2018 lock -> /run/lockdrwxrwxr-x 17 root syslog   4096 Jun 17 00:00 logdrwxrwsrwt  2 root mail     4096 Jun 13 12:10 maildrwxrwsrwt  2 root whoopsie 4096 Jan  5  2018 metricsdrwxr-xr-x  2 root root     4096 Jan  5  2018 optlrwxrwxrwx  1 root root        4 May 14  2018 run -> /rundrwxr-xr-x  9 root root     4096 Jun 16  2018 snapdrwxr-xr-x  9 root root     4096 Jun  9 15:14 spooldrwxrwxrwt  8 root root     4096 Jun 17 00:00 tmpdrwxr-xr-x  3 root root     4096 Jan 19 12:14 www复制代码

虽然技术上的变化很小,但转换到使用 /run 只是为了在 Linux 文件系统中更好地组织运行时数据。


作者:Linux中国
链接:https://juejin.cn/post/6844903873346273294
 

©著作权归作者所有:来自51CTO博客作者wx607823dfcf6a9的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. mySql 在Linux上安装
  2. 架构秘笈:移花接木。使用mysql模拟redis
  3. 运营商劫持狠起来,连json都改
  4. String.replaceAll方法,正则妙用
  5. Spring Cloud Gateway2.0实践报告
  6. 实现文件上下文管理(__enter__和__exit__)
  7. 第14部分- Linux ARM汇编数组/结构体/索引
  8. 第4部分- Linux ARM汇编首个程序
  9. 第12部分- Linux ARM汇编 控制指令

随机推荐

  1. 通读Android文档系列 SEVER
  2. 【Android问题】解决 Android SDK下载和
  3. Developing Augmented Reality Applicati
  4. Android版本名和API Level对应关系
  5. Android Studio第十八期 - Snaphelper
  6. 移动互联网盈利知识汇总
  7. 如何解决Android的SDK与ADT不匹配问题
  8. android,进入页面textview默认获得焦点问
  9. android permission Suggestion: add 'to
  10. android更新