关于Linux下进程的详解【进程查看与管理】

一、关于进程

进程: 已经启动的可执行程序的运行实力

进程的组成:一个进程包含内核中的一部分地址空间和一系列数据结构。其中地址空间是内核标记的一部分内存以供进程使用,而数据结构则用来纪录每个进程的具体信息。

最主要的进程信息包括:

进程的地址空间图

进程当前的状态( sleeping、stopped、runnable 等)

进程的执行优先级

进程调用的资源信息

进程打开的文件和网络端口信息

进程的信号掩码(指明哪种信号被屏蔽)

进程的属主

PID :进程 ID

每个进程都会从内核获取一个唯一的 ID 值。绝大多数用来操作进程的命令和系统调用,都需要用 PID 指定操作的进程对象。

PPID :父进程 ID

在 Unix 和 Linux 系统中,一个已经存在的进程必须“克隆”它自身来创建一个新的进程。当新的进程克隆后,最初的进程便作为父进程存在。

UID & EUID:真实用户 ID 和有效用户 ID

一个进程的 UID 是其创建者的身份标志(也是对其父进程 UID 的复制)。通常只有进程的创建者和超级用户才有操作该进程的权限。

EUID 是一个额外的 UID,用来决定在任意一个特定时间点,一个进程有权限访问的文件和资源。对绝大多数进程而言,UID 和 EUID 是相同的(特殊情况即 setuid)

Niceness

一个进程的计划优先级决定了它能获取到的 CPU 时间。内核有一个动态的算法来计算优先级,同时也会关注一个 Niceness 值,来决定程序运行的优先顺序。

二、信号

信号属于进程级别的中断请求。它们可以作为进程间通信的手段,或者由终端发送以杀死、中断、挂起某个进程。

Linux的信号列表:

[root@web ~]# kill -l1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR111) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3

38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8

43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13

48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12

53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7

58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2

63) SIGRTMAX-1 64) SIGRTMAX

常用信号:

9)SIGKILL:用来立即结束程序的运行。本信号不能被阻塞、处理和忽略。

15)SIGTERM:程序结束(terminate)信号。与SIGKILL不同的是该信号可以被阻塞和处理。通常用来要求程序自己正常(优雅地)退出。shell命令kill缺省产生这个信号。

19)SIGSTOP:停止(stopped)进程的执行。注意它和terminate以及interrupt的区别:该进程还未结束,只是暂停执行。本信号不能被阻塞、处理或忽略。

三、ps命令

简介:ps 命令就是最根本相应情况下也是相当强大地进程查看命令.运用该命令可以确定有哪些进程正在运行和运行地状态、 进程 是否结束、进程有没有僵死、哪些进程占用了过多地资源等等.总之大部分信息均为可以通过执行该命令得到

命令常用参数:ps【选项】

-e 显示所有进程,环境变量

-f 全格式

-h 不显示标题

-l 长格式

-w 宽输出

a

显示终端上地所有进程,包括其他用户地进程

命令使用案例:

列出所有进程:

[root@web ~]# psaux

USER PID%CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

root1 0.0 0.7 190900 3796 ? Ss 09:28 0:01 /usr/lib/syste

root2 0.0 0.0 0 0 ? S 09:28 0:00[kthreadd]

root4 0.0 0.0 0 0 ? S< 09:28 0:00 [kworker/0:0H]

root5 0.0 0.0 0 0 ? S 09:28 0:00 [kworker/u256:

root6 0.0 0.0 0 0 ? S 09:28 0:00 [ksoftirqd/0]

[root@web ~]# psef

PID TTY STAT TIME COMMAND918 pts/0 Ss 0:00 -bash USER=root LOGNAME=root HOME=/root PATH=/usr/lo949 pts/0 S 0:00 \_ bash XDG_SESSION_ID=4 HOSTNAME=172.16.234.111TE1258 pts/0 R+ 0:00 \_ ps ef XDG_SESSION_ID=4 HOSTNAME=172.16.234.1

列出类似进程树的程序:

[root@web ~]# psaxjf

PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND0 2 0 0 ? -1 S 0 0:00[kthreadd]2 4 0 0 ? -1 S< 0 0:00 \_ [kworker/0:0H]2 5 0 0 ? -1 S 0 0:00 \_ [kworker/u256:2 6 0 0 ? -1 S 0 0:00 \_ [ksoftirqd/0]2 7 0 0 ? -1 S 0 0:00 \_ [migration/0]

-l : 列出和当前用户有关的进程   -u 用户 : 查看某一用户的进程状态

进程的五种状态码表示:

D 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)

R 运行(正在运行或在运行队列中等待)

S 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)

T 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行

Z 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)

ps -aux 参数解释

%CPU:占用的CPU使用率

%MEM:占用的记忆体 / 内存使用率

VSZ:占用虚拟记忆体 / 内存大小

RSS:占用的记忆体 / 内存大小

TTY:终端的次要装置号码 / 线路

STAT:该进程的状态

START:进程开始时间

TIME:执行的时间

COMMAND:所执行的指令

注:在 STAT 栏目中:

< 表示高优先级

n 表示低优先级

s 包含子进程

+ 位于后台的进程组

四、top命令

查看实时的进程状态,实现动态监控进程,top 命令可以实时显示系统当前活跃进程的总体信息及其占用的资源。

top - 16:21:00 up 6:52, 1 user, load average: 0.00, 0.01, 0.05Tasks:95 total, 1 running, 94 sleeping, 0 stopped, 0zombie%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0st

KiB Mem :479664 total, 268788 free, 98624 used, 112252 buff/cache

KiB Swap:2097148 total, 2097148 free, 0 used. 362524avail Mem

PID USER PR NI VIRT RES SHR S%CPU %MEM TIME+COMMAND407 root 20 0 0 0 0 S 0.3 0.0 0:01.19 xfsaild/dm+

1 root 20 0 190900 3796 2584 S 0.0 0.8 0:02.00systemd2 root 20 0 0 0 0 S 0.0 0.0 0:00.00kthreadd4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:+

5 root 20 0 0 0 0 S 0.0 0.0 0:00.57 kworker/u2+

6 root 20 0 0 0 0 S 0.0 0.0 0:00.74 ksoftirqd/0

7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0

top 命令的 -d 选项可以指定信息刷新的时间间隔。同时还有一些常用的交互命令

K:杀死一个进程,后面接进程的PID和指定需要处理的信号;默认值为15,强制杀死进程为9

M:按驻留内存使用率大小排序

P:按CPU使用率百分比大小排序

q:退出top程序

s:修改两次信息刷新的时间间隔,默认单位为秒

W:将当前设置写入~/.toprc文件中

top命令一些信息字段含义:

1.系统运行时间和负载情况:

top - 10:45:08 up 1:19, 2 users, load average: 0.00, 0.01, 0.05

系统当前时间

系统已运行的时长

登陆用户数量

系统在5分钟、10分钟、15分钟的负载情况;

注意 load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了

2.任务:

Tasks: 97 total, 1 running, 96 sleeping, 0 stopped, 0 zombie

Task-任务,分别显示任务进程的总数量以及正在运行、睡眠、停止、僵死的进程数

3.CPU状态:

%Cpu(s): 1.0 us, 1.0 sy, 0.0 ni, 98.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

us:用户空间占用CPU的百分比

sy:系统空间占用CPU的百分比

ni:改变过优先级的进程占用CPU的百分比

id:空闲CPU的百分比

wa:IO等待占用CPU的百分比

hi:处理硬件中断的CPU时间(Hardware IRQ)

si:处理软件中断的CPU时间(Software Interrupts)

st:这个虚拟机被hypervisor偷去的CPU时间(译注:如果当前处于一个hypervisor下的vm,实际上hypervisor也是要消耗一部分CPU处理时间的)

注:在这里CPU的使用比率和windows概念不同,如果你不理解用户空间和内核空间——>传送门:https://www.cnblogs.com/sparkdev/p/8410350.html

4.内存使用:

KiB Mem : 479664 total, 278252 free, 89548 used, 111864 buff/cache

KiB Swap:2097148 total, 2097148 free, 0 used. 371568 avail Mem

第一行是物理内存使用,第二行是虚拟内存使用(交换空间)

内存显示以KB为单位,物理内存显示如下:全部可用内存、空闲内存、已使用内存、缓冲内存。 交换部分显示的是:全部、空闲、已使用、总的可使用内存。

5.各进程任务状态监控:

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+COMMAND1 root 20 0 43400 3736 2568 S 0.0 0.8 0:01.71systemd2 root 20 0 0 0 0 S 0.0 0.0 0:00.00kthreadd4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker+

PID:进程ID,进程的唯一标识符

USER:进程所有者的实际用户名。

PR:进程的调度优先级。这个字段的一些值是'rt'。这意味这这些进程运行在实时态。

NI:进程的nice值(优先级)。越小的值意味着越高的优先级。负值表示高优先级,正值表示低优先级

VIRT:进程使用的虚拟内存。进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

RES:驻留内存大小。驻留内存是任务使用的非交换物理内存大小。进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

SHR:SHR是进程使用的共享内存。共享内存大小,单位kb

S:这个是进程的状态。它有以下不同的值:

D - 不可中断的睡眠态。

R – 运行态

S – 睡眠态

T – 被跟踪或已停止

Z – 僵尸态

%CPU:自从上一次更新时到现在任务所使用的CPU时间百分比。

%MEM:进程使用的可用物理内存百分比。

TIME+:任务启动后到现在所使用的全部CPU时间,精确到百分之一秒。

COMMAND:运行进程所使用的命令。进程名称(命令名/命令行)

还有许多在默认情况下不会显示的输出,它们可以显示进程的页错误、有效组和组ID和其他更多的信息。

参考:

https://www.cnblogs.com/zhoug2020/p/6336453.html

https://www.cnblogs.com/ftl1012/p/top.html

原文链接:https://www.cnblogs.com/ashjo009/p/11912563.html

如有疑问请与原作者联系

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

linux看不到进程管理,关于Linux下进程的详解【进程查看与管理】相关推荐

  1. Linux下top命令详解

    Linux下top命令详解 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.top是一个动态显示过程,即可以通过用户按键来不断刷 ...

  2. [原创]手把手教你Linux下的多线程设计--Linux下多线程编程详解(一)

    本文可任意转载,但必须注明作者和出处. [原创]手把手教你Linux下的多线程设计(一)                                       --Linux下多线程编程详解 原 ...

  3. linux 命令xargs,Linux下xargs命令详解

    Linux下xargs命令详解 1. 简介   之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了xargs命令,例如: find /sbin -pe ...

  4. 19. linux中权限详解,Linux权限位,读写执行权限真正含义,chmod详解

    linux中权限详解,Linux权限位,读写执行权限真正含义,chmod详解 文章目录 Linux权限位 读写执行 三种权限真正含义和作用 权限对文件的作用 权限对目录的作用 示例 chmod 使用数 ...

  5. linux source.命令,linux下source命令详解

    本文收集整理关于linux下source命令详解的相关议题,使用内容导航快速到达. 内容导航: Q1:linux下的source命令 linux下的source命令source 命令是 bash sh ...

  6. linux下dd命令详解

    linux下dd命令详解    名称: dd 使用权限: 所有使用者dd 这个指令在 manual 里的定义是 convert and copy a file 使用方式: dd [option] 如果 ...

  7. linux系统rar命令行,Linux下rar命令详解

    Linux下rar命令详解 发布时间:2010-05-24 23:28:23   作者:佚名   我要评论 通常rar命令由一个主命令加若干选项(可选)构成,操作文档为操作施加的.rar文件对象,文件 ...

  8. python os模块安装方法_基于python中pygame模块的Linux下安装过程(详解)

    一.使用pip安装Python包 大多数较新的Python版本都自带pip,因此首先可检查系统是否已经安装了pip.在Python3中,pip有时被称为pip3. 1.在Linux和OS X系统中检查 ...

  9. Linux下使用aMsn详解(转)

    Linux下使用aMsn详解(转) amsn这一款在linux下的Msn就不多介绍了,0.95版出来后加入了摄像头,在加上其文件传输功能,你还留恋于gaim么? 经过多天的搜索和尝试,终于在Fedor ...

  10. linux系统下grub.cfg详解和实例操作

    linux系统下grub.cfg详解和实例操作 简介 grub是引导操作系统的程序,它会根据自己的配置文件,去引导内核,当内核被加载到内存以后,内核会根据grub配置文件中的配置,找到根分区所使用的文 ...

最新文章

  1. STL容器存储的内容动态分配情况下的内存管理
  2. html php 混编 H1,在一个HTML中h1标签能出现几次?h1标签和标题标签的差别是什么?...
  3. 踩坑记录--VScode编辑不同文件没有及时crtl+s,导致文件修改无效
  4. java删除csv一行_在Java中读取CSV文件时跳过第一行
  5. LeetCode(620)——有趣的电影(MySQL)
  6. beetle.express一通讯案例测试结果
  7. 机器学习实战1-1 KNN电影分类遇到的问题
  8. VS2011可以下载了,VC++部分强大了很多
  9. 操作系统实验Lab 2:system calls(MIT 6.S081 FALL 2020)
  10. LaTeX参考文献取消doi输出
  11. 变上限积分求导公式(通用公式)
  12. 乌云沙龙:赛棍的自我修养
  13. coffeescript java 执行_独立于事件运行的coffeescript函数
  14. 毕业设计 微信小程序在线免费小说系统(源码+论文)
  15. 挑战杯课外学术参赛作品—AI合约问卷调查系统
  16. 基因数据处理56之bwa运行paird-end(1千万条100bp的reads).md
  17. Node.js 2小时爬取驴妈妈8W+条旅游数据
  18. 完成全球92万+集装箱箱况残损检验, 完成上亿集装箱信息识别, 中集飞瞳成熟集装箱码头人工智能,全球集装箱人工智能垂直领域领军者
  19. html文件做屏保win10,win10系统屏保制作成桌面壁纸的解决教程
  20. revit中的楼板开洞做法?如何快速一键开洞?

热门文章

  1. ubuntu 16.04安装体验网易云音乐
  2. 【笔记】ARM指令系统
  3. 如何卸载Visio秘钥
  4. 计算机报名初始密码,计算机报名密码忘了怎嘛办
  5. 从零开始Android游戏编程(第二版) 第一版前言
  6. 如何利用XGen制作头发,发片-笔记
  7. python成语接龙源代码,基于Tkinter,带成语解释
  8. “区块链技术创新要植根市场”
  9. 快慢指针(java)
  10. Chrome屏蔽Adobe Flash Player 插件的问题