菜鸟笔记
提升您的技术认知

Linux进程管理和查看

1.什么是进程

进程是正在执行的程序或命令,每一个进程都是一个正在运行的实体,都有自己的地址空间,并占用一定的系统资源。在windows中,打开任务管理器->进程就可以看到正在运行的进程。
  

2.进程管理的作用

  1. 判断服务器健康状态
  2. 查看系统中所有进程
  3. 杀死进程

3.进程相关命令

1.ps aux //查看系统中的所有进程,使用BSD操作系统格式
2.ps -le //查看系统的所有进程,使用Linux标准命令格式

1.ps aux命令

a表示all,u表示user,x表示列出完整信息

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.1  0.1   2892  1404 ?        Ss   20:40   0:03 /sbin/init
root         2  0.0  0.0      0     0 ?        S    20:40   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    20:40   0:00 [migration/0]

...

各个字段的含义

字段 含义
1 USER 进程由那个用户产生的
2 PID 进程号
3 %CPU 占用的cpu比例
4 %MEM 占用的内存比例
5 VSZ 该进程使用掉的虚拟内存量(kb)
6 RSS 该进程占用的固定的内存量
7 TTY 该进程是在哪个终端机上面运行的,如果与终端机无关,则显示?
8 STAT 该进程的状态(R/S/T/Z)
9 START 进程被触发的时间
10 TIME 该进程实际使用CPU的时间
11 COMMAND 该进程的实际指令
进程状态 含义
R 正在运行
S 睡眠
T 停止
s 包含子进程
+ 位于后台

2.top命令,查看系统健康状态

输入top命令,显示如下信息

前面几行的内容说明

第一行内容 说明
21:56:54 系统当前时间,虚拟机里的系统时间不一定准确
up 1:16 系统运行了1小时16分钟
1 user 当前登录了1个用户
load average:0.00,0.01,0.00 系统在之前的1分钟,5分钟,15分钟的平均负载。一般认为小于1时,负载较小。如果大于1,系统已经超出负荷
第二行内容 说明
Tasks:150 total 一共150个进程
1 running 1个在运行
149 sleeping 149个在休眠
0 stopped 0个停止
0 zombie 0个僵尸进程
第三行内容 说明
Cpu(s):0.1%us 用户模式占用的CPU百分比
0.2%sy 系统模式占用的CPU百分比
0.0%ni 改变过优先级的用户进程占用的CPU百分比
99.7%id 空闲CPU的百分比,这个比较重要
0.0%wa 等待输入/输出的进程的占用CPU百分比
0.0%hi 硬中断请求服务占用的CPU百分比
0.1%si 软中断请求服务占用的CPU百分比
0.0%st st(steal time)虚拟时间百分比。就是当有虚拟机时,虚拟CPU等待实际CPU的时间百分比
第四行内容 说明
Mem:1030608k total 物理内存总大小(kb),(我给虚拟机分配的内存是1024MB)
164772k used 用掉的内存
865836k free 空闲的内存
14816k buffers 做缓冲的内存数量
第五行内容 说明
Swap:1023992k total swap分区一共1023992kb
0k used 用掉了0k
1023992k free 1023992k空闲
76092k cached 76092kb作为缓存的交互分区

前面的五行内容比较重要的是CPU负载,CPU的空闲率,物理内存的空闲三个指标。TOP命令本身是比较耗费资源的。
僵尸进程是指进程正在终止,但是还没有终止,有可能是因为卡死了

3.kill命令,杀死进程

kill -l 查看支持的信号

常用的信号有:

信号代号 信号名称 信号说明
1 SIGHUP 这个信号让进程立即关闭,然后重新读取配置文件之后重启
9 SIGKIL 立即结束程序运行,一般用于强制终止进程
15 SIGTERM 正常结束进程,如果无法正常结束,会尝试用9信号

命令格式:kill [-信号] PID //不指定信号的话默认为15

killall 命令

命令格式:killall [选项] [信号] 进程名 //按照进程名终止进程
选项:
-i:交互式,询问是否要杀死某个进程
-I:忽略大小写

pkill命令

命令格式:pkill [选项] [信号] 进程名 //按照进程名终止进程
选项:
-t 终端号:按照终端号踢出用户