查看根目录内容

[root@xxxx /]# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

proc简介

Linux 内核提供了一种进程信息虚拟文件系统(Process information virtual file system) ,简称 proc,通过 proc 这个虚拟的文件系统,可以在运行时访问内核(core)内部数据结构、改变内核的某些参数设置。
数据都是在内存里,本身不占任何硬盘空间。如进程,是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提交的

[root@xxxx proc]# ls
1       106340  118     119744  134   2      2781  2880  2993  3142  3210  3635   42514  52116  64     74     82     91     99         driver       key-users   net           sysrq-trigger
10      106413  118327  12      14    21     2785  2881  3     3160  3248  37     43     53     66     76     83     92     acpi       execdomains  kmsg        pagetypeinfo  sysvipc
102475  106502  118831  120     16    22     28    2882  3091  3182  3252  3755   43208  53036  67     77     84     92677  buddyinfo  fb           kpagecount  partitions    timer_list
103184  106563  119     120640  167   23     2823  2883  31    3184  3256  38     44     54     68     78     86     93     bus        filesystems  kpageflags  sched_debug   timer_stats
103553  107     119112  121     17    24     2826  2884  3100  3185  33    39     46     56     69     78374  88     9352   cgroups    fs           loadavg     schedstat     tty
104063  107133  119208  121372  18    2565   2839  2885  3135  3188  34    3920   47     57     69466  78676  88717  93840  cmdline    interrupts   locks       scsi          uptime
104215  108     119213  123690  1878  2567   2840  2886  3136  3195  3446  3993   48     58     7      78687  88870  94     consoles   iomem        mdstat      self          version
104515  11      119215  123691  19    2568   2859  2887  3137  3196  3450  4038   49     59     71     78688  89     95     cpuinfo    ioports      meminfo     slabinfo      vmallocinfo
104970  110742  119240  124607  1902  2582   2864  29    3138  3198  3451  41     5      61     71792  78790  8923   96     crypto     irq          misc        softirqs      vmstat
105     113867  119333  128906  1907  26     2867  2956  3139  32    36    42     5027   61403  72     79     9      97     devices    kallsyms     modules     stat          zoneinfo
105657  113868  119602  13      1915  26305  2878  2969  3140  3202  3629  4237   51     62     73     8      90     973    diskstats  kcore        mounts      swaps
106     116     119707  13027   1940  27     2879  2992  3141  3205  3630  42503  52     63     73040  81     90034  98     dma        keys         mtrr        sys

另外,在/proc下还有三个很重要的目录:net,scsi和sys。 sys目录是可写的,可以通过它来访问或修改内核的参数,而net和scsi则依赖于内核配置。例如,如果系统不支持scsi,则scsi 目录不存在。

进程目录

/proc 下有一些以数字命名的目录,它们是进程目录。系统中当前运行的每一个进程都有对应的一个目录在/proc下,以进程的 PID号为目录名,它们是读取进程信息的接口。而self目录则是读取进程本身的信息接口,是一个link。

#以进程 4327为例
[root@xxxx 4237]# ls
ls: cannot read symbolic link exe: No such file or directory
total 0
dr-xr-xr-x 2 root root 0 Jun 29 12:56 attr
-rw-r--r-- 1 root root 0 Jun 29 12:56 autogroup
-r-------- 1 root root 0 Jun 29 12:56 auxv
-r--r--r-- 1 root root 0 Jun 29 12:56 cgroup
--w------- 1 root root 0 Jun 29 12:56 clear_refs
-r--r--r-- 1 root root 0 Jun 29 12:56 cmdline                #cmdline,进程启动命令
-rw-r--r-- 1 root root 0 Jun 29 12:56 comm
-rw-r--r-- 1 root root 0 Jun 29 12:56 coredump_filter
-r--r--r-- 1 root root 0 Jun 29 12:56 cpuset
lrwxrwxrwx 1 root root 0 Jun 29 12:56 cwd -> /
-r-------- 1 root root 0 Jun 24 16:35 environ
lrwxrwxrwx 1 root root 0 Jun 24 16:35 exe                   #exe,指向启动当前进程的可执行文件(完整路径)的符号链接
dr-x------ 2 root root 0 Jun 24 19:40 fd                    #fd,进程相关的所有的文件描述符
dr-x------ 2 root root 0 Jun 29 12:56 fdinfo
-rw-r--r-- 1 root root 0 Jun 29 12:56 gid_map
-r-------- 1 root root 0 Jun 29 12:56 io
-r--r--r-- 1 root root 0 Jun 29 12:56 limits
-rw-r--r-- 1 root root 0 Jun 29 12:56 loginuid
dr-x------ 2 root root 0 Jun 29 12:56 map_files
-r--r--r-- 1 root root 0 Jun 29 12:56 maps
-rw------- 1 root root 0 Jun 29 12:56 mem
-r--r--r-- 1 root root 0 Jun 29 12:56 mountinfo
-r--r--r-- 1 root root 0 Jun 29 12:56 mounts
-r-------- 1 root root 0 Jun 29 12:56 mountstats
dr-xr-xr-x 5 root root 0 Jun 29 12:56 net
dr-x--x--x 2 root root 0 Jun 29 12:56 ns
-r--r--r-- 1 root root 0 Jun 29 12:56 numa_maps
-rw-r--r-- 1 root root 0 Jun 29 12:56 oom_adj
-r--r--r-- 1 root root 0 Jun 29 12:56 oom_score
-rw-r--r-- 1 root root 0 Jun 29 12:56 oom_score_adj
-r--r--r-- 1 root root 0 Jun 29 12:56 pagemap
-r-------- 1 root root 0 Jun 29 12:56 patch_state
-r--r--r-- 1 root root 0 Jun 29 12:56 personality
-rw-r--r-- 1 root root 0 Jun 29 12:56 projid_map
lrwxrwxrwx 1 root root 0 Jun 29 12:56 root -> /
-rw-r--r-- 1 root root 0 Jun 29 12:56 sched
-r--r--r-- 1 root root 0 Jun 29 12:56 schedstat
-r--r--r-- 1 root root 0 Jun 29 12:56 sessionid
-rw-r--r-- 1 root root 0 Jun 29 12:56 setgroups
-r--r--r-- 1 root root 0 Jun 29 12:56 smaps
-r--r--r-- 1 root root 0 Jun 29 12:56 stack
-r--r--r-- 1 root root 0 Jun 28 10:30 stat
-r--r--r-- 1 root root 0 Jun 24 16:35 statm
-r--r--r-- 1 root root 0 Jun 29 12:56 status                #status,进程状态信息
-r--r--r-- 1 root root 0 Jun 29 12:56 syscall
dr-xr-xr-x 3 root root 0 Jun 29 12:56 task                  #task,包含由当前进程所运行的每一个线程的相关信息,每个线程的相关信息文件均保存在一个由线程号(tid)命名的目录中
-r--r--r-- 1 root root 0 Jun 29 12:56 timers
-rw-r--r-- 1 root root 0 Jun 29 12:56 uid_map
-r--r--r-- 1 root root 0 Jun 29 12:56 wchan

查看某个进程状态

[root@xxxx 4237]# cat status
Name:   kworker/4:1H
Umask:  0000
State:  S (sleeping)
Tgid:   4237
Ngid:   0
Pid:    4237             #进程id
PPid:   2                #父进程id
TracerPid:      0
Uid:    0       0       0       0
Gid:    0       0       0       0
FDSize: 64
Groups:
Threads:        1
SigQ:   2/127880
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: ffffffffffffffff
SigCgt: 0000000000000000
CapInh: 0000000000000000
CapPrm: 0000001fffffffff
CapEff: 0000001fffffffff
CapBnd: 0000001fffffffff
CapAmb: 0000000000000000
Seccomp:        0
Speculation_Store_Bypass:       thread vulnerable
Cpus_allowed:   00000000,00000000,00000000,00000010
Cpus_allowed_list:      4
Mems_allowed:   00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001
Mems_allowed_list:      0
voluntary_ctxt_switches:        3521966
nonvoluntary_ctxt_switches:     5

僵尸进程问题

某些情况下,我们需要杀java进程,下面使用强制杀死进程的方式

[root@xxxx usr]# kill -9  4327

执行上面的命令发现没有任何效果,使用 jps 查看, 进程还是存在

[root@xxxx usr]# jps -l

此时便可以通过杀父进程的方式解决

[root@xxxx usr]# cat /proc/4327/status

也就是上图中的PPid

[root@xxxx usr]# kill -9  2

Linux目录--proc详解相关推荐

  1. linux php 上级目录,Linux目录架构详解_php

    linux和Windows操作系统的显著区别之一就是目录架构的不同.Linux操作系统的目录架构遵循文件系统层级结构标准.不知你是否使用ls命令浏览过Linux的根目录"/",亲爱 ...

  2. 【Linux】proc详解

    Linux系统的proc详解 Linux系统上的/proc目录是一种文件系统,即proc文件系统.与其它常见的文件系统不同的是,/proc是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态 ...

  3. Linux系统proc详解

    原文链接:https://www.cnblogs.com/liushui-sky/p/9354536.html 目录 一.        进程目录中的常见文件介绍 1.1 cmdline 1.2.cw ...

  4. linux 中/proc 详解

    proc 文件系统   在Linux中有额外的机制可以为内核和内核模块将信息发送给进程-- /proc 文件系统.最初设计的目的是允许更方便的对进程信息进行访问(因此得名),现在它被每一个有有趣的东西 ...

  5. Linux目录架构详解

    Linux和Windows操作系统的显著区别之一就是目录架构的不同.Linux操作系统的目录架构遵循文件系统层级结构标准.不知你是否使用ls命令浏览过Linux的根目录"/",亲爱 ...

  6. Linux目录功能及文件类型,linux目录作用详解(超详细,树状排版)

    自己在网上找了好久,没找到,干脆自己做一个.给大家分享下,希望能顺便指出我的错误.请复制到记事本,然后取消自动换行.看起来就会很清晰了. /根目录 │ ├boot/启动文件.Linux的内核及引导系统 ...

  7. [ linux ] 文件系统和目录结构详解

    昨天,有个小学弟了我一个linux面试题目,和她解答完之后我就想在C站开一个专栏,用于linux和windows的学习 我是这么想的,从linux入手,再写windows,最后总结常见区别 本文主要写 ...

  8. Linux操作系统(详解及配置操作)

    Linux操作系统 重点:linux的安装 linux的常用指令 linux的网络配置 shell编程 难点:linux的磁盘分区 linux的shell编程 linux日志 1 linux基础篇 1 ...

  9. linux /proc 详解

    linux /proc 详解 本文整理了一下 linux /proc下的几个常用的目录和文件,可供查阅,之后在学习工作中有别的用到的话会再补充. /proc 简介 Linux系统上的/proc目录是一 ...

  10. Linux文件系统的目录结构详解(转)

    Linux文件系统的目录结构详解(转) 原文链接https://www.cnblogs.com/cyjaysun/p/4462325.html 一.前 言 文章对Linux下所有目录一一说明,对比较重 ...

最新文章

  1. MegEngine基本概念
  2. [中英对照]How PCI Works | PCI工作原理
  3. VMware Workstation创建独立网络
  4. 下一代对话系统中的关键技术(上篇)
  5. 快速定位Product assignment block里对应的修改逻辑使用的function module
  6. MFC改变对话框背景图片实例
  7. (119)System Verilog 父类与子类对象复制(自定义函数)详解
  8. Thymeleaf本页面通过controller跳转到本页面的坑
  9. zz Oracle存储过程总结
  10. android 登录 service_如何优雅的实现自己的Android组件化改造?
  11. 2010年篮球规则(FIBA)
  12. 『Delphi』File not found的解决办法
  13. oracle及mysql错误记录
  14. jspx框架使用总结-页面开发
  15. 大厂面试为什么总考算法?如何避开算法面试?
  16. 三种T检验的详细区分
  17. java动态编译类文件并加载到内存中
  18. [转载]HC-SR501 人体红外感应模块
  19. webView加载全景图
  20. python 双精度浮点_Python双精度浮点数运算并分行显示操作示例

热门文章

  1. 如何手动编辑art分区修改qsdk(qca9531、qca9563)无线mac地址
  2. 计算机代数与密码学,代数曲线与密码学
  3. 分布式计算、统计学习与ADMM算法
  4. 【Unity3D日常开发】Unity3D中 C#反射Reflection的使用
  5. 【学习资源】免费资源网站,仅供学习参考
  6. 左耳听风——笔记二:程序员练级攻略
  7. shell 小米system锁adb_小米/红米系列手机解system分区锁方法详解
  8. 王道计算机考研数据结构—学习笔记Chapter Five 串String
  9. USB VIDPID 表
  10. Qt网络编程-简易版UDP单播通信入门Demo(3)