Linux Process Management
Contents
进程简介
进程是正在执行的一个程序或命令,每个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源
进程管理的作用
-
判断服务器健康状态
-
查看系统中的所有进程
-
杀死进程
查看系统中所有进程
-
ps aux查看系统中所有进程,使用BSD操作系统格式 -
ps -el查看系统中所有进程,使用Linux标准命令格式 -
ps -Lf 进程号查看指定进程的线程
进程信息说明
-
USER该进程是哪个用户产生 -
PID进程ID号 -
%CPU该进程占用的CPU资源百分比 -
%MEM该进程占用的物理内存百分比 -
VSZ该进程占用的虚拟内存大小,单位kb -
RSS该进程占用实际物理内存的大小,单位kb -
TTY该进程在哪个终端中运行的,其中tty1-tty7代表本地控制台终端,tty1-tty6是本地的字符界面终端,tty7是图形终端。`pts/0-255代表虚拟终端(远程) -
STAT进程状态。常见状态:-
R运行 -
S睡眠 -
T停止状态 -
s包含子进程 -
+位于后台
-
-
START该进程的启动时间 -
TIME该进程占用CPU的运算时间,注意不是系统时间 -
COMMAND产生此进程的命令名
查看系统健康状态
|
|
-d秒数:指定top命令每隔几秒更新。默认3秒
top命令的交互模式中可以执行的命令:
-
?/h显示交互模式的帮助 -
P按CPU使用率排序,默认就是此项 -
M以内存的使用率排序 -
N以PID排序 -
q退出top
top命令的显示信息
第一行信息为任务队列信息
| 内容 | 说明 |
|---|---|
| 12:26:46 | 系统当前时间 |
| up 1day, 13.:32 | 系统的运行时间。本机已经运行了1天13小时 |
| 2 users | 当前登录了两个用户 |
| load average: 0.00,0.00,0.00 | 系统在之前1分钟、5分钟、15分钟的平均负载。一般认为小于1时,负载较小。如果大于1,系统已经超出负荷。 |
第二行为进程信息
| 内容 | 说明 |
|---|---|
| Tasks: 95 total | 系统中的进程总数 |
| 1 running | 正在运行的进程数 |
| 94 sleeping | 睡眠的进程 |
| 0 stopped | 正在停止的进程 |
| 0 zombie | 僵尸进程。如果不是0,需要手工检查僵尸进程 |
第三行为CPU信息
内容说明:
| 内容 | 说明 |
|---|---|
| Cpu(s)0.1%us | 用户模式占用的CPU百分比 |
| 0.1%sy | 系统模式占用的CPU百分比 |
| 0.0%ni | 改变过优先级的用户进程占用的CPU百分比 |
| 99.7%id | 空间CPU的百分比 |
| 0.1%wa | 等待输入/输出的进程占用的百分比 |
| 0.0%hi | 硬中断请求服务占用的CPU百分比 |
| 0.1%si | 软中断请求服务占用的CPU百分比 |
| 0.0%stst | (steal time)虚拟时间百分比。就是当有虚拟机时,虚拟CPU等待实际CPU的时间百分比 |
第四行为物理内存信息
| 内容 | 说明 |
|---|---|
| Mem: 625344k total | 物理内存总量,单位kb |
| 571504k used | 已经使用的物理内存总量 |
| 53840k free | 空闲的物理内存数量 |
| 65800k buffers | 作为缓冲的内存数量 |
第五行为交换分区(swap)信息
| 内容 | 说明 |
|---|---|
| Swap: 524280k total | 内容说明交换分区(虚拟内存)的总大小 |
| 0k used | 已经使用的交互分区的大小 |
| 524280k free | 空闲交换分区的大小 |
| 409280k cached | 作为缓存的交互分区的大小 |
查看进程树
|
|
-
-p显示进程的PID -
-u显示进程的所属用户
终止进程
kill命令
-
kill -l查看可用的进程信号 -
kill -9 1234强制终止pid为1234的进程
常用信号
| Signal Num | Signal Name | Description |
|---|---|---|
| 1 | SIGHUP | 该信号让进程关闭,然后重新读取配置文件之后重启 |
| 9 | SIGKILL | 用来立即结束程序的运行。本信号不能被阻塞、处理和忽略。一般用于强制终止进程 |
| 15 | SIGTERM | 正常结束进程的信号。kill命令的默认信号。有时如果进程已经发生问题,这个信号是无法正常终止进程的,这时需要用信号9 |
killall命令
按照进程名杀死进程
killall [选项] [信号] 进程名
选项
-
-i交互式,询问是否要杀死某个进程 -
-I忽略进程名的大小写
pkill命令
按照进程名终止进程
pkill [选项] [信号] 进程名
选项
-t终端号:按照终端号踢出用户
Author bingym
LastMod 2022-01-29