一、关于进程

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

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

最主要的进程信息包括:

进程的地址空间图

进程当前的状态( 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和其他更多的信息。

参考:

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

  1. Linux下top命令详解

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

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

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

  3. linux中的ps fx命令,Linux下ps命令详解 Linux下ps命令的详细使用方法

    Linux下ps命令详解 1. 运行(正在运行或在运行队列中等待) 2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号) 3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断 ...

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

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

  5. linux中top指令,Linux下top命令详解

    原标题:Linux下top命令详解 1.简介 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.top显示系统当前的进程和其他状况 ...

  6. linux环境下ps命令行,Linux下ps命令详解

    下ps命令详解Linux上进程有5种状态: 1. 运行(正在运行或在运行队列中等待)2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)3. 不可中断(收到信号不唤醒和不可运行, 进程必须 ...

  7. linux环境下ps命令行,Linux下ps命令详解 Linux下ps命令的详细使用方法

    Linux下ps命令详解 Linux上进程有5种状态:1. 运行(正在运行或在运行队列中等待) 2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号) 3. 不可中断(收到信号不唤醒和不可运 ...

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

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

  9. linux下dd命令详解

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

  10. linux vsftpd用法,Linux_LINUX系统下vsftpd 命令详解,FTP命令是Internet用户使用最频 - phpStudy...

    LINUX系统下vsftpd 命令详解 FTP命令是Internet用户使用最频繁的命令之一,不论是在DOS还是UNIX操 作系统下使用FTP,都会遇到大量的FTP内部命令. 熟悉并灵活应用FTP的内 ...

最新文章

  1. redis优雅的批量删除key
  2. HTML5--sessionStorage、localStorage、manifest
  3. Red Hat 更新yum源为centos,并安装c环境
  4. __name__属性
  5. 编程中的一种特殊递归-尾递归
  6. MOT with a hierachical single branch network
  7. 巧用margin/padidng的百分比值占位,避免闪烁
  8. 多重背包(二进制优化)
  9. windows通过javaw启动spring boot项目jar命令,查看进程命令,关闭进程命令
  10. 零基础转行到IT,怎么选择适合的职业?
  11. 理想,努力了才叫梦想,放弃了那只是妄想
  12. 麦克风没声音,这个选项你注意到了吗?
  13. Win10系统新款便笺便签居然可以这么好用
  14. 硅光电二极管检测电路
  15. 惩罚因子(penalty term)与损失函数(loss function)
  16. HA RabbitMQ on K8s helm部署实战
  17. 推荐3本Python高分书籍,居家旅行必备神器!
  18. 123457123456#2#----com.MC.ShiZi365--前拼后广--儿童识字Game-mc22222222222222222
  19. Android中多行文本末尾添加图片 图标在文字后面 换行
  20. 普林斯顿微积分读本篇十九:微分方程

热门文章

  1. 在Qt中使用C++代码创建界面
  2. awk print 的用法
  3. Windows7下Caffe的应用---在Win7下使用VS2015、Camke、Anaconda3配置Caffe CPU版本
  4. OpenCV学习记录(二):自己训练haar特征的adaboost分类器进行人脸识别
  5. eclipse+cdt+MinGW
  6. ssh客户端_Mobaxterm-不止是一款好用的SSH客户端软件
  7. imx6 板卡移植官方yocto版本(1_安装环境)
  8. 《ArcGIS Engine 地理信息系统开发从入门到精通(第二版)》——6.7 本章小结
  9. ASP:关于生成HTML文件的新闻系统
  10. MongoDB的简单操作