Linux的进程管理
一、Linux的进程
1.1进程
每个执行的程序,每个进程都分配有一个PID(即进程号)
前台:就是在屏幕上执行的。
后台:在屏幕上看不见,在后台执行。(系统的服务一般都是在后台进行的,而且常驻系统,直至关机才结束)
1.2ps命令
1.2.1ps命令的作用
用来查看当前系统中哪些有哪些在执行的进程,以及执行的情况。
1.2.2ps命令的语法
ps 【选项】
(ps命令一般配合管道符以及grep命令一起使用)
1.2.3ps命令的参数
参数 | 作用 |
---|---|
-a | 显示当前终端所有进程信息 |
-u | 以用户的格式显示当前信息 |
-x | 显示后台进程运行参数 |
-e | 显示全部进程 |
-f | 全格式 |
1.2.4ps命令的实例
-
ps -a (显示当前终端所有进程信息)
[root@guowang1 ~]# ps -a PID TTY TIME CMD 7497 pts/0 00:00:00 ps
-
ps -au (以用户的格式显示当前终端的详细信息)(注意:-u不能单独使用)
[root@guowang1 ~]# ps -au USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 7180 0.0 0.2 115436 1992 tty1 Ss+ 11:25 0:00 -bash root 7205 0.0 0.2 115440 2080 pts/0 Ss 11:26 0:00 -bash root 7500 0.0 0.1 155360 1876 pts/0 R+ 13:28 0:00 ps -au
-
ps -x (显示后台进程运行参数)
[root@guowang1 ~]# ps -x PID TTY STAT TIME COMMAND 1 ? Ss 0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22 2 ? S 0:00 [kthreadd] 3 ? S 0:00 [ksoftirqd/0] 5 ? S< 0:00 [kworker/0:0H]
-
ps -aux (以用户的格式显示当前终端的全部参数信息)
[root@guowang1 ~]# ps -aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.6 127860 6504 ? Ss 11:24 0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22 root 2 0.0 0.0 0 0 ? S 11:24 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S 11:24 0:00 [ksoftirqd/0] root 5 0.0 0.0 0 0 ? S< 11:24 0:00 [kworker/0:0H] root 6 0.0 0.0 0 0 ? S 11:24 0:00 [kworker/u256:0] root 7 0.0 0.0 0 0 ? S 11:24 0:00 [migration/0] root 8 0.0 0.0 0 0 ? S 11:24 0:00 [rcu_bh] root 9 0.0 0.0 0 0 ? S 11:24 0:00 [rcu_sched]
-
ps -ef(以全格式显示全部进程)
[root@guowang1 ~]# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 11:24 ? 00:00:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22 root 2 0 0 11:24 ? 00:00:00 [kthreadd] root 3 2 0 11:24 ? 00:00:00 [ksoftirqd/0] root 5 2 0 11:24 ? 00:00:00 [kworker/0:0H] root 6 2 0 11:24 ? 00:00:00 [kworker/u256:0] root 7 2 0 11:24 ? 00:00:00 [migration/0] root 8 2 0 11:24 ? 00:00:00 [rcu_bh]
1.2.5 ps -aux 表头信息详解
USER:用户名称
PID:进程号
%CPU:进程占CPU的百分比
%MEM:进程占物理内存的百分比
VSA:进程占用虚拟内存的大小(单位:KB)
RSS:进程占用物理内存的大小(单位:KB)
TT:终端名称缩写
STAT:进程状态(S-睡眠。s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的进程,R-表示正在运行,D-表示短暂等待,Z-表示僵死进程,T-表示被追踪或者被停止)
STARTED:进程的启动时间
TIME:CPU时间,即进程使用CPU的总时间
COMMAND:启动进程所有的命令和参数。
1.2.6 ps -ef表头信息详解
UID:用户ID
PID:进程ID(即进程号)
PPID:父进程ID
C:CPU用于执行计算机执行优先级的因子。数值越大,表明是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高
STIME:进程启动的时间
TTY:完整的终端名称
TIME:进程占用CPU时间
CMD:启动进程所用的命令和参数
1.3 kill 和 killall 命令
1.3.1 kill 和 killall 命令的作用
kill命令用于终止该进程。(用进程号杀死该进程)
killall命令也用于终止进程。(通过运用进程名称杀死进程,同时支持通配符)
1.3.2 kill和killall命令栏的语法
kill 【选项】 进程号
killall 进程名称
1.3.3kill的参数
kill -9 进程号 (强制杀死该进程哪怕是在运行)
###1.4 pstree命令
1.4.1 pstree命令的作用
查看进程树,可以更直观的查看进程信息
1.4.2pstree 命令的语法
pstree 【选项】
1.4.3pstree命令的参数
参数 | 作用 |
---|---|
-u | 显示进程的所属用户 |
-p | 显示进程的PID |
1.4.4 pstree 命令的实例
-
pstree
[root@guowangzhongwen ~]# pstree systemd─┬─ModemManager───2*[{ModemManager}] ├─NetworkManager─┬─dhclient │ └─2*[{NetworkManager}] ├─VGAuthService ├─abrt-dbus───2*[{abrt-dbus}]
-
pstree -p
[root@guowangzhongwen ~]# pstree -p systemd(1)─┬─ModemManager(611)─┬─{ModemManager}(633) │ └─{ModemManager}(666) ├─NetworkManager(771)─┬─dhclient(900) │ ├─{NetworkManager}(776) │ └─{NetworkManager}(778) ├─VGAuthService(607)
二、显示进程信息 top命令
2.1 top 命令
2.1.1 top命令的作用
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用情况,类似于Windows系统中的任务管理器。
2.1.2top命令的语法
top 【选项】
2.1.3top命令表头信息详解
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R2ZKcpUP-1658370792179)(C:\Users\秦彦\AppData\Roaming\Typora\typora-user-images\image-20220719144328180.png)]
前五行是系统整体的信息统计:
第一行是任务列队信息:
信息 | 详解 |
---|---|
14:43:13 | 当前时间 |
up 18 min | 系统运行时间 |
3 user | 当前登录用户数 |
load average:0.01,0.02,0.05 | 系统负载,即任务队列的平均长度。三个数值分别表示1分钟,5分钟,15分到现在的平均值。 |
第二、三行为进程和CPU信息:
信息 | 详解 |
---|---|
213 total | 进程总数为213 |
running | 正在运行的经常数 |
sleeping | 睡眠的进程数 |
stopped | 停止的进程数 |
zombie | 僵尸进程数 |
us | 用户空间占用CPU百分比 |
sy | 内核空间占用CPU百分比 |
ni | 用户进程空间内改变过优先级的进程占用CPU百分比 |
id | 空闲CPU百分比 |
wa | 等待输入输出的CPU时间百分比 |
hi | 硬中断占用CPU的百分比 |
si | 软中断占用CPU的百分比 |
st | 是当hypervisor服务另一个虚拟处理器的时候,虚拟CPU等待实际CPU的百分比 |
最后两行为内存信息
信息 | 详解 |
---|---|
totall | 物理内在总量 |
used | 使用的物理内存总量 |
free | 空闲内存总量 |
buffers | 用作内核缓存的内存量 |
total | 交换区总量 |
used | 使用交换区的总量 |
free | 空闲区总量 |
cached | 缓冲交换区的总量 |
信息区的信息
信息 | 详解 |
---|---|
PID | 进程ID |
USER | 进程所用着用户名 |
PR | 优先级 |
NI | nice值。复制表示优先级高 |
VIRT | 进程使用虚拟内存总量 |
RES | 进程使用的未被唤出的物理内存大小 |
SHR | 共享内存大小 |
S | 进程状态 |
%CPU | CPU的占有率 |
%MEM | 进程使用物理内存百分比 |
TIME+ | 进程使用CPU的时间总计 |
COMMAND | 命令名 |
| RES | 进程使用的未被唤出的物理内存大小 |
| SHR | 共享内存大小 |
| S | 进程状态 |
| %CPU | CPU的占有率 |
| %MEM | 进程使用物理内存百分比 |
| TIME+ | 进程使用CPU的时间总计 |
| COMMAND | 命令名 |