Linux-进程管理类命令
ps
ps(process status)查看当前系统进程状态
基本语法
ps [选项] [| ...]
选项
选项 | 功能 |
---|---|
a | 列出带有终端的所有用户的进程,不显示没有终端的 |
x | 列出当前用户的所有进程,包括没有终端的进程 |
u | 面向用户友好的显示风格 |
-e | 列出所有进程 |
-u | 列出某个用户关联的所有进程 |
-f | 显示完整格式的进程列表 |
一般组合:
- aux:查看cpu和内存占用率
- -ef:查看父子进程之间的关联关系
显示说明
- ps aux:
- USER:该进程是由哪个用户产生的
- PID:进程的id号
- %CPU:该进程占用cpu资源的百分比
- %MEM:该进程占用物理内存的百分比
- VSZ:该进程占用虚拟内存的大小,单位kb
- RSS:该进程占用实际物理内存的大小,单位kb
- TTY:该进程是在哪个终端中运行的
- ?:没有终端
- tty1:图形化终端
- tty2-tty6:本地的字符界面终端
- pts/0-255:代表虚拟终端
- STAT:进程状态
- R:运行
- S:睡眠
- T:暂停
- Z:僵尸
- s:包含子进程
- l:多线程
- +:前台显示
- <:当前线程优先级很高
- N:当前进程优先级很低
- START:该进程的启动时间
- TIME:当前进程使用cpu的运算时间
- COMMAND:调用进程所执行的命令
- ps -ef:
- UID:该进程是由哪个用户产生的
- PID:进程的id号
- PPID:父进程的id号
- C:cpu用于计算执行优先级的因子
- 数值越大,表明进程是cpu密集型运算,执行优先级会降低
- 数值越小,表面进程的I/O密集型运算,执行优先级会提高
- STIME:该进程的启动时间
- TTY:该进程是在哪个终端中运行的
- TIME:当前进程使用cpu的运算时间
- CMD:调用当前进程的命令
kill
终止进程
基本语法
通过进程号杀死进程
kill [选项] 进程号
通过进程名称杀死进程(支持通配符)
killall 进程名称
选项
选项 | 功能 |
---|---|
-9 | 强迫进程立即终止 |
-l | 查看所有信号值 |
pstree
查看进程树
基本语法
pstree [选项]
选项
选项 | 功能 |
---|---|
-p | 显示进程的pid |
-u | 显示进程所属的用户 |
top
实时监控系统进程状态
基本语法
top [选项]
选项说明
选项 | 功能 |
---|---|
-d 秒数 | 指定top命令每隔几秒更新,默认3秒 |
-i | 使top不显示任何闲置或者僵死进程 |
-p 进程号 | 通过指定监控进程id,来监控某个进程的状态 |
-S | 指定累计模式 |
-s | 使top命令在安全模式中运行,可以去除交互命令带来的危险 |
-c | 显示整个命令而不只是显示命令名 |
操作
操作 | 功能 |
---|---|
P | 以cpu使用率排序,默认就是此项 |
M | 以内存的使用率排序 |
N | 以PID排序 |
q | 退出 |
u | 指定查看的用户 |
k | 杀死指定进程,需要指定进程号和信号量 |
显示
- 独立部分:
- 第一行:
- top:当前时间
- up:机器运行了多长时间
- users:当前登录用户数
- load average:系统负载,即任务队列的平均长度。三个数值分别为1分钟、5分钟、15分钟前到现在的平均值
- 第二行:
- Tasks:当前有多少进程
- runing:正在运行的进程数,此类进程越多服务器压力越大
- sleeping:正在休眠的进程数
- stopped:停止的进程数
- zombie:僵尸进程数
- 第三行:
- us:用户空间占cpu的百分比
- sy:内核空间占cpu的百分比
- ni:修改过nice值的进程消耗掉的cpu时间
- id:空闲cpu占用率
- wa:等待输入输出的cpu时间百分比
- hi:硬中断占用百分比
- si:软中断占用百分比
- st:丢失时间
- 第四行:
- total:物理内存总量
- free:空闲内存量
- used:使用的内存量
- buffer/cache:用作内核缓存的内存量
- 第五行:
- total:交换区内存总量
- free:空闲交换区总量
- used:使用的交换区总量
- buffer/cache:缓冲的交换区总量
- 第一行:
- 列表部分:
- PID:进程编号
- USER:哪个用户调用的进程
- PR:当前任务调度优先级
- NI:用户指定的优先级
- VIRT:虚拟内存占用大小
- RES:实际内存占用大小
- SHR:共享内存占用大小
- S:进程状态
- R:运行
- S:睡眠
- T:跟踪/停止
- z:僵尸
- D:不可中断的睡眠
- %CPU:cpu计算时间占比
- %MEM:内存占比
- TIME+:占用cpu的总时间,单位1/100秒
- COMMAND:生成进程的命令
netstat
显示网络状态和端口占用信息
基本语法
netstat [选项] [|...]
选项
选项 | 功能 |
---|---|
-a | 显示所有正在监听和未监听的套接字(socket) |
-n | 拒绝显示别名,能显示数字的全部转换成数字 |
-l | 仅列出在监听的服务状态 |
-p | 表示显示哪个进程在调用 |
常用组合:
- -anp:查看该进程网络信息
- -nlp:查看网络端口占用情况
显示内容
- Active Internet connections:有源tcp连接
- Proto:网络协议
- Recv-Q:接受到,但还没有拷贝的字节数
- Send-Q:已经发送,但远程主机还没有收到的字节数
- Local Address:本地地址
- Foreign Address:远程地址
- State:连接状态
- LISTEN:监听(需要-a才能看到)
- ESTABLISHED:建立连接
- PID/Program name:进程id,和程序的名称
- Active UNIX domain sockets:有源unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以高一倍)
- Proto:协议
- RefCnt:表示连接到本套接口上的进程号
- Type:套接口的类型
- STREAM:流套接字
- DGRAM:数据报套接字
- RAW:原始套接字
- State:连接状态
- PID/Program name:进程id,和程序名称
- Path:连接到套接口的其他进程使用的路径名