Linux目录--proc详解
查看根目录内容
[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详解相关推荐
- linux php 上级目录,Linux目录架构详解_php
linux和Windows操作系统的显著区别之一就是目录架构的不同.Linux操作系统的目录架构遵循文件系统层级结构标准.不知你是否使用ls命令浏览过Linux的根目录"/",亲爱 ...
- 【Linux】proc详解
Linux系统的proc详解 Linux系统上的/proc目录是一种文件系统,即proc文件系统.与其它常见的文件系统不同的是,/proc是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态 ...
- Linux系统proc详解
原文链接:https://www.cnblogs.com/liushui-sky/p/9354536.html 目录 一. 进程目录中的常见文件介绍 1.1 cmdline 1.2.cw ...
- linux 中/proc 详解
proc 文件系统 在Linux中有额外的机制可以为内核和内核模块将信息发送给进程-- /proc 文件系统.最初设计的目的是允许更方便的对进程信息进行访问(因此得名),现在它被每一个有有趣的东西 ...
- Linux目录架构详解
Linux和Windows操作系统的显著区别之一就是目录架构的不同.Linux操作系统的目录架构遵循文件系统层级结构标准.不知你是否使用ls命令浏览过Linux的根目录"/",亲爱 ...
- Linux目录功能及文件类型,linux目录作用详解(超详细,树状排版)
自己在网上找了好久,没找到,干脆自己做一个.给大家分享下,希望能顺便指出我的错误.请复制到记事本,然后取消自动换行.看起来就会很清晰了. /根目录 │ ├boot/启动文件.Linux的内核及引导系统 ...
- [ linux ] 文件系统和目录结构详解
昨天,有个小学弟了我一个linux面试题目,和她解答完之后我就想在C站开一个专栏,用于linux和windows的学习 我是这么想的,从linux入手,再写windows,最后总结常见区别 本文主要写 ...
- Linux操作系统(详解及配置操作)
Linux操作系统 重点:linux的安装 linux的常用指令 linux的网络配置 shell编程 难点:linux的磁盘分区 linux的shell编程 linux日志 1 linux基础篇 1 ...
- linux /proc 详解
linux /proc 详解 本文整理了一下 linux /proc下的几个常用的目录和文件,可供查阅,之后在学习工作中有别的用到的话会再补充. /proc 简介 Linux系统上的/proc目录是一 ...
- Linux文件系统的目录结构详解(转)
Linux文件系统的目录结构详解(转) 原文链接https://www.cnblogs.com/cyjaysun/p/4462325.html 一.前 言 文章对Linux下所有目录一一说明,对比较重 ...
最新文章
- MegEngine基本概念
- [中英对照]How PCI Works | PCI工作原理
- VMware Workstation创建独立网络
- 下一代对话系统中的关键技术(上篇)
- 快速定位Product assignment block里对应的修改逻辑使用的function module
- MFC改变对话框背景图片实例
- (119)System Verilog 父类与子类对象复制(自定义函数)详解
- Thymeleaf本页面通过controller跳转到本页面的坑
- zz Oracle存储过程总结
- android 登录 service_如何优雅的实现自己的Android组件化改造?
- 2010年篮球规则(FIBA)
- 『Delphi』File not found的解决办法
- oracle及mysql错误记录
- jspx框架使用总结-页面开发
- 大厂面试为什么总考算法?如何避开算法面试?
- 三种T检验的详细区分
- java动态编译类文件并加载到内存中
- [转载]HC-SR501 人体红外感应模块
- webView加载全景图
- python 双精度浮点_Python双精度浮点数运算并分行显示操作示例
热门文章
- 如何手动编辑art分区修改qsdk(qca9531、qca9563)无线mac地址
- 计算机代数与密码学,代数曲线与密码学
- 分布式计算、统计学习与ADMM算法
- 【Unity3D日常开发】Unity3D中 C#反射Reflection的使用
- 【学习资源】免费资源网站,仅供学习参考
- 左耳听风——笔记二:程序员练级攻略
- shell 小米system锁adb_小米/红米系列手机解system分区锁方法详解
- 王道计算机考研数据结构—学习笔记Chapter Five 串String
- USB VIDPID 表
- Qt网络编程-简易版UDP单播通信入门Demo(3)