zoukankan      html  css  js  c++  java
  • /proc 文件系统

    在浏览 /proc 目录的时候您会发现许多目录的名称是一些数字。这些目录保存了当前系统中运行的所有进程的信息。

    $ ls -d /proc/[0-9]*
    /proc/1/    /proc/302/  /proc/451/  /proc/496/  /proc/556/  /proc/633/
    /proc/127/  /proc/317/  /proc/452/  /proc/497/  /proc/557/  /proc/718/
    /proc/2/    /proc/339/  /proc/453/  /proc/5/    /proc/558/  /proc/755/
    /proc/250/  /proc/385/  /proc/454/  /proc/501/  /proc/559/  /proc/760/
    /proc/260/  /proc/4/    /proc/455/  /proc/504/  /proc/565/  /proc/761/
    /proc/275/  /proc/402/  /proc/463/  /proc/505/  /proc/569/  /proc/769/
    /proc/290/  /proc/433/  /proc/487/  /proc/509/  /proc/594/  /proc/774/
    /proc/3/    /proc/450/  /proc/491/  /proc/554/  /proc/595/

    请注意,作为普通用户,您(理论上)只能查看与您自己的进程相关的信息,而不是其他用户的。因此,请升级为 root 用户,并查看进程 127 包含哪些信息:

    $ su
    Password:
    $ cd /proc/127
    $ ls -l
    total 0-9
    -r--r--r--    1 root     root            0 Dec 14 19:53 cmdline
    lrwx------    1 root     root            0 Dec 14 19:53 cwd -> //
    -r--------    1 root     root            0 Dec 14 19:53 environ
    lrwx------    1 root     root            0 Dec 14 19:53 exe -> /usr/sbin/apmd*
    dr-x------    2 root     root            0 Dec 14 19:53 fd/
    pr--r--r--    1 root     root            0 Dec 14 19:53 maps|
    -rw-------    1 root     root            0 Dec 14 19:53 mem
    lrwx------    1 root     root            0 Dec 14 19:53 root -> //
    -r--r--r--    1 root     root            0 Dec 14 19:53 stat
    -r--r--r--    1 root     root            0 Dec 14 19:53 statm
    -r--r--r--    1 root     root            0 Dec 14 19:53 status
    $

    每个目录包含同样的项目。以下简单介绍其中某些项目:

    1. cmdline:该(虚拟)文件包含了启动该进程的整个命令行。它未曾格式化:程序与其参数之间没有空格,行末也没有换行。要查看它,您可以使用:perl -ple 's,\00, ,g' cmdline

    2. cwd:该符号链接指向该进程的当前工作目录。

    3. environ:该文件包含为该进程定义的所有环境变量,格式为 变量=值。与 cmdline 文件一样,其内容未曾格式化过:各个变量之间没有分行,文件末尾也没有换行。要查看,可以:perl -pl -e 's,\00,\n,g' environ

    4. exe:这是指向该进程所执行的可执行程序文件的符号链接。

    5. fd:在此子目录中包含了该进程当前打开的所有描述符。参见下文。

    6. maps:当您打印该命名管道内容时(例如使用 cat), 您将看到该进程地址空间中当前映射到文件中的那部分。自左至右各列为:与该映射关联的地址空间,与该映射关联的权限,该映射起始位置的偏移量(从文件开始 处算起),保存该映射文件设备的主、从序号(十六进制格式),该文件的 inode 序号,以及该文件的文件名。当设备号为 0 且没有 inode 号或文件名时,它就是一个匿名映射。请参阅 mmap(2)

    7. root:该符号链接指向该进程使用的根目录。通常为 /,请参阅 chroot(2)

    8. status:该文件包含该进程的众多信息:可执行文件名、当前状态、PIDPPID、实际及有效的 UIDGID、内存使用情况、以及其他。请注意,statstatm 现已过时。它们包含的信息现存于 status

    浏览进程 127 的 fd 目录,我们将看到:

    $ ls -l fd
    total 0
    lrwx------    1 root     root           64 Dec 16 22:04 0 -> /dev/console
    l-wx------    1 root     root           64 Dec 16 22:04 1 -> pipe:[128]
    l-wx------    1 root     root           64 Dec 16 22:04 2 -> pipe:[129]
    l-wx------    1 root     root           64 Dec 16 22:04 21 -> pipe:[130]
    lrwx------    1 root     root           64 Dec 16 22:04 3 -> /dev/apm_bios
    lr-x------    1 root     root           64 Dec 16 22:04 7 -> pipe:[130]
    lrwx------    1 root     root           64 Dec 16 22:04 9 ->
    /dev/console
    $

    实际上,这是该进程打开的文件描述符列表。每个打开的描述符由一个符号链接表示,其名称为该描述符的编号,并指向该描述符打开的文件[25]。请注意这些符号链接的权限:它们的意义仅代表被相应描述符打开的文件的权限

  • 相关阅读:
    Velocity模版进行shiro验证
    freemarker中使用shiro标签
    freemarker中使用shiro标签
    freemarker中使用shiro标签
    Maven引入自定义jar包
    Maven引入自定义jar包
    Maven引入自定义jar包
    Spring MVC多个视图解析器及优先级
    (尚054)Vue_源码分析_模板解析_事件指令
    (尚052)+(尚053) Vue_源码分析_模板解析_大括号表达式
  • 原文地址:https://www.cnblogs.com/linengier/p/2995719.html
Copyright © 2011-2022 走看看