白城网

  • 宠物
  • tv286@qq.com
  • 南京保健
  • 淘宝小号
  • 全站显示 30/月
  • 全站显示 30/月
  • 全站显示 30/月
  • 全站显示 30/月
  •   白城网   电脑网络   技术|探索 Linux 上的 /run
    返回列表
    查看: 50|回复: 0
    收起左侧

    技术|探索 Linux 上的 /run

    [复制链接]
     楼主| 发表于 7-3-2019 21:50:52 | 显示全部楼层 |阅读模式

    丈母娘每晚约我满足她


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

    如果你没有密切关注,你可能没有注意到 Linux 系统在运行时数据方面的工作方式有一些小但重大的变化。 它重新组织了文件系统中可访问的方式和位置,而这个变化在大约八年前就开始了。虽然这种变化可能不足以让你的袜子变湿,但它在 Linux 文件系统中提供了更多一致性,值得进行一些探索。
    要开始,请转到
    1. /run
    复制代码
    。如果你使用
    1. df
    复制代码
    来检查它,你会看到这样的输出:
    1. $ df -k .
    2. Filesystem     1K-blocks  Used Available Use% Mounted on
    3. tmpfs             609984  2604    607380   1% /run
    复制代码

    它被识别为 “tmpfs”(临时文件系统),因此我们知道
    1. /run
    复制代码
    中的文件和目录没有存储在磁盘上,而只存储在内存中。它们表示保存在内存(或基于磁盘的交换空间)中的数据,它看起来像是一个已挂载的文件系统,这个可以使其更易于访问和管理。
    1. /run
    复制代码
    是各种各样数据的家园。例如,如果你查看
    1. /run/user
    复制代码
    ,你会注意到一组带有数字名称的目录。
    1. $ ls /run/user
    2. 1000  1002  121
    复制代码

    使用长文件列表可以发现这些数字的重要性。
    1. $ ls -l
    2. total 0
    3. drwx------ 5 shs  shs  120 Jun 16 12:44 1000
    4. drwx------ 5 dory dory 120 Jun 16 16:14 1002
    5. drwx------ 8 gdm  gdm  220 Jun 14 12:18 121
    复制代码

    我们看到每个目录与当前登录的用户或显示管理器 gdm 相关。数字代表他们的 UID。每个目录的内容都是运行中的进程所使用的文件。
    1. /run/user
    复制代码
    文件只是你在
    1. /run
    复制代码
    中找到的一小部分。还有很多其他文件。有一些文件包含了各种系统进程的进程 ID。
    1. $ ls *.pid
    2. acpid.pid  atopacctd.pid  crond.pid  rsyslogd.pid
    3. atd.pid    atop.pid       gdm3.pid   sshd.pid
    复制代码

    如下所示,上面列出的
    1. sshd.pid
    复制代码
    文件包含 ssh 守护程序(
    1. sshd
    复制代码
    )的进程 ID。
    1. $ cat sshd.pid
    2. 1148
    3. $ ps -ef | grep sshd
    4. root      1148     1  0 Jun14 ?        00:00:00 /usr/sbin/sshd -D   
    5. [code]/run
    复制代码
    中的某些子目录只能使用 root 权限访问,例如
    1. /run/sudo
    复制代码
    。例如,以 root 身份运行我们可以看到一些与真实或尝试使用
    1. sudo
    复制代码
    相关的文件:
    1. /run/sudo/ts# ls -l
    2. total 8
    3. -rw------- 1 root dory 112 Jun 16 16:37 dory
    4. -rw------- 1 root shs  168 Jun 17 08:33 shs
    复制代码

    为了与
    1. /run
    复制代码
    的变化保持一致,一些运行时数据的旧位置现在是符号链接。
    1. /var/run
    复制代码
    现在是指向
    1. /run
    复制代码
    的指针,
    1. /var/lock
    复制代码
    指向
    1. /run/lock
    复制代码
    的指针,可以保证旧的引用按预期工作。
    1. $ ls -l /var
    2. total 52
    3. drwxr-xr-x  2 root root     4096 Jun 17 07:36 backups
    4. drwxr-xr-x 19 root root     4096 Apr 18 13:46 cache
    5. drwxrwsrwt  2 root whoopsie 4096 Jun 13 07:39 crash
    6. drwxr-xr-x 75 root root     4096 Jun  9 15:14 lib
    7. drwxrwsr-x  2 root staff    4096 Oct 16  2017 local
    8. lrwxrwxrwx  1 root root        9 May 14  2018 lock -> /run/lock
    9. drwxrwxr-x 17 root syslog   4096 Jun 17 00:00 log
    10. drwxrwsrwt  2 root mail     4096 Jun 13 12:10 mail
    11. drwxrwsrwt  2 root whoopsie 4096 Jan  5  2018 metrics
    12. drwxr-xr-x  2 root root     4096 Jan  5  2018 opt
    13. lrwxrwxrwx  1 root root        4 May 14  2018 run -> /run
    14. drwxr-xr-x  9 root root     4096 Jun 16  2018 snap
    15. drwxr-xr-x  9 root root     4096 Jun  9 15:14 spool
    16. drwxrwxrwt  8 root root     4096 Jun 17 00:00 tmp
    17. drwxr-xr-x  3 root root     4096 Jan 19 12:14 www
    复制代码

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

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    收藏:0 | 帖子:1709

    有图有真相